COULEUR DE" -
528 LOCATE 8, 18: PRINT "CHACUNE B'EL > ZE-
LE EST PRECISEE . PLUS HAUT EST INS x
CRITE LA VALEUR"
53» LOCATE B.28:PRINT "CE LA RE5I5T >YK
ANCE , ENFIN A DROITE SE TROUVE LA
FENETRE DE TRA-"
540 LOCATE 8, 22: PRINT "V'fllL OUI PER >¥H
«ET DE CALCULER LA VALEUR OU DE DON
NER LA COULEUR"
550 LOCATE 8,24:PRINT "SUIVANT LE M >8E
ODE CHOISI (TOUCHE CD: MODE CHIFFRE
S OU MODE COULEURS) "
568 LOCATE 1,25:PRINT "UNE TOUCHE . >GJ
579 CALL &.BB86 >ME
586 BORDER 0:INK 0,9:INK 1,0 >VD
590 MODE 2 >JD
660 ■ DESSIN DE LA RESISTANCE :>R6
618 ORIBIN 230,358 >HJ
620 DEB >RE
630 FOR F?.=70 TO 290:PLOT COS'.FWH >KB
2,SIh(F7.)*12:NEXT
640 PLOT 4,1 i : DRA«R 50,0 >RA
650 PLOT 4,-il:DRAWR 50,0 >TT
660 PLOT 14, 11:DRAWR 0,-190 >UU
679 PLOT 9,11;DRAWR 0,-80:DRA«R -59 >FC
,-29
680 PLOT 19,11:DRAWR 0,-B0:DRAWR 50 /FF
,-20
690 PLOT -12,0:DRAHR -40,0 >UL
790 ORIBIN 288,359: FOR F7.=l TO 110: >ME
PLOT C0SiF7.)*i2,SIN(FM*12:NEXT
719 FOR FX=250 TO 360:PLOT CDS(FÏ)* >UE
12,SINiF7.)*12:NEXT
720 PLOT 12,0:DRAWR 49,0 >RV
730 ' DESSIN ENCART DES TABLEAUX >TA
740 ORIBIN 9,9:DRA» 639,9:DRAWR 0, >UN
399:PLÛT 0,0:DRA«R 0,399:DRAHR 639,
9
750 PLOT 160,0:DRAHR 9,399 >UM
769 PLOTR -169,-169:DRA«R 399,9:PL0 >LH
TR 9,-30:DRANR -399,0:PLOTR 399,199
:DRAWR 0,-399
770 LOCATE 22,10:PRINT "NOIR" >XC
780 LOCATE 39,10:PRINT "NOIR" >XC
790 LOCATE 38, 19: PRINT "OR" >VD
890 LOCATE 28,2:PRINT "VALEUR : >PV
";CHR$!19D
810 ' TABLEAU DES COULEURS >RK
B20 LOCATE 26, 12: PRINT "TABLEAU DES >8N
COULEURS"
830 LOCATE 24,15:PRINT "0 - NOIR >NY
5 - VERT"
840 LOCATE 24,17:PRINT "1 - MARRON M
■ 6 - BLEU"
B59 LOCATE 24, 19: PRINT "2 - R0U6E >Rlj |
7 - VIOLET"
,860 LOCATE 24,21:PRINT "3 - ORANBE »
' 8 - 6RIS"
870 LOCAIE 24,23:PRINI "4 - JAUNE ;t'Û.
9 - BLANC"
880 ' TABLEAU DES MULTIPLICATEURS >TG
890 LOCATE 4,12:RRINT "MULTIPLICATE >KY
URS"
990 LOCATE 2, 15: PRINT "0 - s 1 ":CH >JX
R$1191)
910 LOCATE 2,16:PRINT "1 - s 10 ":C >KO
HR*(191!
929 LOCATE 2,17:PRINT "2 - x 100 ": >LK
CHR*U91>
939, LOCATE 2,18:PR1NT "3 - s 1000 " .'MF
;CHR*(191)
940 LOCATE 2,19:FRINT "4 - •/. 10000 >NC
":CHR*(191)
950 LOCATE 2.20:PRINT "5 - ;< 100090 ;NZ
";CHR*(191)
969 LOCATE 2,21:PRINT "6 - x 109000 ;>PY
":CHR*(191!
970 LOCATE 6,23:PRINT "OR : s 0.1 " >MP
:CHR1(191)
980 ' TABLEAU EXPLICATIF
>TH
:PRINT "R E S I S T >F«
990 LOCATE
R"
1000 LOCATE 2,6;PRINT "Z X : COUL1/ >JA
CH1F1"
1910 LOCATE 2,7:PRINT "C V : COUL2; >JC
CHIF2"
1020 LOCATE 2,8:PRINT "B N : COUL3/ >KB
MULT. "
1930 LOCATE 2,10:PRINT "ENTER : VAL >JH
IDER"
1940 INK 0, 13 >AC
1050 ' FENETRE TRAVAIL >XJ
1060 WNDOM *1, 51, 79,2.24 >TF
1079 CLS tl >LC
i960 DATA OR,0. 1,0, NOIR, 1,1, MARRON, >FY
10,2,ROUSE,190,3,ORANSE,1000,4,JAUN
E, 10900, 5, VERT, 100000, 6, BLEU, 108909
0,7,VIOLET„8,GRIS,,9,BLANC,
1090 RESTORE 1080 >LU
1190 READ COUL$i9),MULT*(0) >VY
1119 FOR F=l TO 19:READ NRCLSF1.COU >ZC
L*(F),MULT*(F):NEXT
1129 MDEC=1 >VJ
1130 LOCATE *1,10,12:PRINT*1,"UNE T >KX
OUCHE"
1149 CALL MB96:SÛSUB 1219:MDCI="CH >VA
IFFRE":BOTO 1190
1159 K«=INKEY*tIF K*=" THEN 1159 >Z«
1168 IF UPPER»(K$i="C" THEN MDEC=MD >FC
EC+1:IF MDEC)2 THEN MDEC=1
1170 IF MDEC=1 THEN MDC*="CHIFFRE" >YF
ELSE MDC*="COULEUR"
\ 189 ON MDEC GOSUB 1210, 1439 >VC
1190 LOCATE #1 , 3, 23: PRINT»! . "MODE : >BK
. ":MDM;" TOUCHE <C>"
' 1200 GOTO 1150 >LH
1210 'MODE COULEUR >XB
1220 LI8NE=1 ,'FH
1230 CLS#l:LOCATE #1,3,23:PRINT#1," >V2
MODE : COULEUR"
1240 F=1:S=1:H=0 )6J
1250 LOCATE tl,3,5:PRINTtl, "COULEUR :>BR
1 : ";C0UL$(F);SPACE»(6-LENlC0UL$t /
Fi))
1260 LOCATE «1,3,13:PRINT#1, "COULEU >CV
R 2 : ";C0UL*(6i;SPACE*(6-LEN!CÛUL* /
(S)))
1270 LOCATE M,3,20:PRINT#1,"COULE'I >CX
R3 : ":C0UL*(H);SPACE*(6-LEN(C0UL$
(H) ) )
1289 Kt=INKEY»:ÏF K$="" THEN 1288 >ZE
1298 IF UPPER»(K*)="Z" THEN F=F-1:I >OU
F F<1 THEN F=10
1300 IF UPPER»(K$)="X" THEN F=F+1: I >QF
F F>10 THEN F=l
1310 IF UPPER*(K*i="C" THEN 6=6-1:1 ;>Q0
F 6<1 THEN G=10
1320 IF UPPER*(K*)="V" THEN G=6+1:I >8K
F 6>10 THEN 6=1
1330 IF UPPER$(K$)="B" THEN H=H-1:I >PD
F H<0 THEN H=7.
1349 IF UPPER*(K$Ï="N" THEN H=H+1:I >PT
F H)? THEN H=0
1350 IF K*=CHR*(13) THEN 1370 >VQ
1360 ON LIGNE GOTO 1259,1470 >VB
1370 VALEURl»=STR$(NRCL(F)i:VALEUR2 >XJ
S=STR$ (NRCL (G) ) : VALEUR3*=VALEUR1$+V
ALEUR2I: VALEUR=VAL (VALEUR3$i »VAL (MU
LT*(H!)
1388 LOCATE 22,10:FflINT COULKFiiSP >CD
ACE*(6-LEN(C0UL*iF))!
1390 LOCATE 30,10:PRINT C0UL$(6);SP >CF
ACE*(6-LEN(COUL*(G!)>
1409 LOCATE 38,18:PRINT COUL*(H):SP >CH
ACE*(6-LEN!C0UL*(H)))
1410 LOCATE 37,2:PRINT VALEURjCHR»! >LL
32!;CHR*(191):SPACE*(11-LEN(STR*(VA
LEUR) +CHR$ C32) +CHRÏ ( 1 91 ) ) )
1429 RETURN >FA
1438 'MODE CHIFFRE >YA
1449 LI6NE=2 >GC
1459 F=1:6=1:H=0 >HB
1469 CLS#1: LOCATE #1,3,23:PRINT#1, " >VL
MODE : CHIFFRE"
1470 LOCATE #1,5,5:PRINT#1, "CHIFFRE >UA
1 : "iNRCL(F)
1480 LOCATE #1 , 5, 13: PRINT#1 , "CHIFFR >VA
E 2 : ";NRCL<6)
1490 LOCATE #1,2,20:PRINT#1,"MULTIP >PE
LICATEUR : "; MULTt (H! ; SPACE$ (S-LEN C
MULT$(H))i;
' 1500 BOTO 1280 >MEB
D
U
DIVISION
T210 IF
; PRINT
•Hervé DURAND
Voici un programme de démonstration de
division (sans virgule) avec participation de
l'élève.
L'enfant choisit un dividende et un diviseur
de 6 chiffres maximum. L'ordinateur dessine
la division et demande le premier quotient,
s'il est bon l'ordinateur pose la soustraction
et le reste et attend le quotient suivant.
l'enfant trouve du
| premier coup il gagne 5
"centimes (variable c$
définie par les symboles du début) et
la somme gagnée s'affiche en fin de
partie ; donc élève surdoué s'abstenir.
5 '***** DIVISION ***** >FE
18 SYMBQL 248. 8, 8,3,28, 32, 64, 128. 12 >CA
8
28 SYMBOL 249,8,126,129,8.126,98,96
,68
38 SYMBOL 258,8,8,192,56,4,2,1.1 >YA
48 B$=CHR$(24B)tCHR$(24?)+CHR»(259) >BR
50 SYMBOL 251,128,128.192,96,68,31, >DN
3,8
68 SYMBOL 252,6.182.68,8,8.129,255. >DA
126
78 SYMBOL 253,1,1,3,6,68,248.192.8 >AF
88 -f*=CHRÏ(251 i+CHR* (252Ï +CHR* (253i >BM
98 c*=e$+CHR*iB)+CHRS<S)+CHR»i8S+CH >KH
R$(18)t«
La partie musicale en fin de liste est
censée rappeler la chute d'une pièce de
monnaie, vous constaterez qu'elle est
perfectible, je fais confiance pour cela
à l'imagination des lecteurs.
■DZ
188 PRINT CHR$i7)
;>LF
1» ON ERROR 80T0 100
>PV
128 MODE 1 : HINDOU #3,6,40,6,25:z=0
>QJ
:resut=8:s=0
138 HINDOU #4,28,39.14,24
>TL
148 HINDOU #5,30.3B.6,15:PEN #5,2
>ZJ
158 HINDOU #2,5,35,2, 4: PAPER »2,2:P
>PT
EN #2,3:CLS 12
166 FOR i=l TO 6:a(i)=8:a$(i>="0":N
>FE
EXT i
178 LOCATE #2,18,2:PRINT #2."D I V
>NF
I S I N
180 PEN 1: PAPER 8: BORDER 18
m
198 LOCATE 19,t8:INPUT "dividende l
>BN
iax=6!";a*:al=LENia*)
288 FOR i=l TO aka«*iii=MID*ia$.i.
;>XH
1): IF ASC(a»»(i)K48 OR ASCiatrttil)
>57 THEN 100 ELSE NEXT i
HEN CLS#3: LOCATE 18.28 .
îF'RINT "dividende trop qrand! ; ':BÛTO
198
viseur (ma .-D
V
220 LOCATE 18,12:INPUT
x=6)":b*:l=LEN(b»)
230 FOR )=1 TO l:b«*(.j)=MID$(bl..!.l >VA
) : IF ASC(b»*(.i)K4B ÛR ASC foi»$i,i )i>
57 THEN 198 ELSE MEiT .1
248 IF 1)6 THEN CLS#3: LOCATE 10.22 >EF
:PRINÎ "diviseur trop qrand!":BÛTO
228
250 Pû=l+l:dit=al-l:»i=19-al-l >ZH
268 HINDOU #l,Ni,19.6.12+3*Dit >ÏA
278 a=VALia»):b=VALibt! >RK
288 IF b=l THEN LOCATE 10,24:PRINT >ÏM
"petit fiqolo !":F0R i=l TO 1088:NE
XT i:CLS#3:S0T0 228
298 IF aib THEN LOCATE 10 ,24: PRINT «U
"dividende < a diviseur" :F0R i=i
TO 1888:NEXT i:CLS#3:GOT0 198
300 60SUB 638 >HB
310 restera*: restera ,'RJ
320 FOR i=i TO al:a*ii)=LEFTstat.i) ,'CV
ia(ii=VALia$ii!!:NEXT i
330 FOR 1=1 TO l:b*(i)=LEFT$(bl.iil >BB
b!ii=VALlb*(i!):NEXT l
340 n=i:i=0 /VF
358 IF n>l THEN BOSUB 588: ELSE c=l >AV
368 FOR 1=1 TO LEN(reste$l >UA
370 reste*(il=LEFT«(reste*.iiireste >BX
(i)=VAL(reste*(i))
380 NEXT i >m
398 IF restetlXb AND reste<l+i)C0 >MD
AND n=l THEN c=2:l=l+l:po=PO+l
408 IF n>l AND reste{cK=blll AND r ;AE
este(c+l)<>0 THEN c=c+l
418 resu-re5te(c)/b(l!;re5u=Fnire5 >HG
u)
420 IF n=l THEN reste=resteili:rest >NC
e»=STR$ireste):PLOT 288-16*ai.3è4:l
e- (LEN(reste»)-l)*16:DRAWR le, 0.3:
DRAHR 8,16:DRAWR -le,8:DRAWR 0,-16
438 IF n>l THEN lec= LEN( reste» (cl) >NR
-kORISIN «i*16,19*16:PL0T (p-l)*16
,16*U-q):DRANR lecH6,0:ORIGIN 0,0
:M0VE 336,304:DRA«R 16,0
440 IF resu*b>reste THEN resu=resu- >8E
llfflTO 448
450 0RI6IN 8,0:MOVE 422,8:BRA« 634, >VZ
8,3:DRAW 634,280:DRAW 422,200:DRA«
422,8: jo=0:6OSUB 838
468 resut =resut*18+resu:L0CATE 21, >W
8: PRINT resut
478 aa=re5u*b:aa$=STR»iaa)::!=LEN(aa >JB
*)-l
♦ 488 reste=reste-aa >PL
V^
490 reste$«STRJ(reste):rx=LENtreste
500 p=po-x:q=n+l:Pq=aa:6ÛSU6 748
518 q=q+l:LOCATE #l,p+i.q:PEN #1,2
:PRINT Kl,STRING$(x,CHR*il54ii:PEN
•1.1
520 p=po-rx:q=q+l:pq=reste:GOSUB 74
9
536 IF aU+Hn)=0'TH£N BOSUB 760:60
SU8 90»)
546 IF resten) THEN p=p+l
55») reste=restWlê+ta(l+l+iii-(a(l+«
)*10))
560 rests*=5TRf (reste) :pq=reste:60S
UB 74a
570 n=n+3:«=mtl:SBT0 350
590 FOR 1=1 TO LENia»)
600 reste(ii=0:re5tei(i)="0"
61» NEXT i
620 PO=PO+i: RETURN
638 CL5 #3
640 PEN 2:F0R i=l TO 3*dif+3
650 LOCATE 20,5+i:PRINT CHR*(149):N
EST i
660 LOCATE 20.7:PRINT CHWI151)
670 FOR 1=1 TO 1+dH
68» LOMTE 20+i,7:PRINT CHR*(1541i«
EXT l
690 PEN 1 : LOCATE #1,2,1:PRINT «1, a
■Hf $
QD
700 LOCATE 22,6:PR1NT b* >TK
710 PRINT #5, "m******"; >YK
"* SCORE *":
720 LOCATE # 5,3,4:PRINT#5.SC0 >YC
730 RETURN >ZF
740 IF P=» THEN P=l >NK
750 LOCATE «,P,q:PRINT #l.pq:RETUR >FR
N
760 PRINT CHR*(7i:PEN 2:PAPER 3 >¥F
770 LOCATE 21,8:PRINT CHR$(24kresu >FL
780 FOR 1=1 TO 200; NEXT i >RC
790 2=1+1 >HE
800 IF :O10 THEN 770 ELSE PRINT C >DE
HR*<24i;60SUB 940:RETURN
810 PAPER 0iPEN 1: RETURN >UC
820 FOR h=l TO 1200:NEÏT h:CL5#4 >ZK
830 PRINT #4. "combien de tois":b," ,>XU
dans": reste
840 LOCATE 22+m, Si INFUT "",,1 >WE
850 IF j Oresu AND jo=3 THEN CLS* >BA
4:PRINT# 4, "non c'etait";resu: .10=0: /
RETURN
860 IF j<resu THEN CLS » 4:PRINTt 4 >W1
,,"non trop petit", "reessave":jcF j
jo+UBOTD 820
870 IF j=resu AND ,10=0 THEN CLS * 4 >QK
:PRINT I 4, "oui": BOSUB 920:RETURN
880 IF .presu THEN CLS#4:PRINT #4.C >BÛ
HR$(7);"oui":RETURN
890 IF j>resu AND ji=resteic)/b<lSA >ER
ND resu <>0 THEN CLS#4:PRINT# 4, "no
n mais j'aurai fait la inertie e
rreur"iPRINT# 4, "reessaye": jo=jo+l:
60T0 S20:ELSE CLS #4:PRINT # 4. "non
trop grand", "reessaye": jo=,io+l:
SOTO 820
900 PRINTI4, "une autre ? to/nj " M>
910 J»=INKEV*:IF UPPER$( j*)="0" THE :>KU
N 90 ELSE IF UPPER*U$!="N" THEN
930 ELSE BOTO 910
920 BOSUB 940:s=s+l:SCO=SCO+5:LOCAT >Ufl
E 3,6+niPRINT c*:LOCATE #5.3,4:PRIN
T#5,SCD:RETURM
930 CLS#4;PRINT I4,"tu as qaqne ";s >NK
co: i xentiies":sco=0:END
940 EN! 4.1,0.1: ENV 4,1.13.1,12.-1 ;GE
,4:ENV 5,1,13,1.1,0,16,12,-1,4
950 SOUND 129. 36,0,15, 4. 4,5:F0R i=i ;AF
TO 100:NEXT i:SOUND 129.34,0,15,4.
4,5:F0R i=l TO 100:NEXT i:
960 SOUND 129,32,0.15.5,4.5;FOR 1=1 >ZJ
TO 200:NEXT ilRETURN
970 END >TK«
LES COMMANDES
• Flèches G & D : choix du sens de
formation du train au niveau de la
page de présentation. Ensuite
déplacement du curseur sur les
formes ou les couleurs.
• ESPACE : pour valider.
• COPY : pour corriger (efface le
dernier wagon affiché).
• ESCAPE : pour revenir à la page
de présentation
• O & N ; rejouer ou abandonner
en fin de partie.
LE PETIT
TRAIN
// s'agit d'un éducatif
de niveau maternelle
(formes & couleurs),
inspiré (fortement)
d'un programme paru
dans "MOS POUR
TOUT PETIT" de D.
NIELSEN.
Le but est de
reconstituer un train
en formes et en
couleurs.
•Pierre MAROT
aj
18 ' LE PETIT TRAIN - Pierre >LA I
MftROT (d après D.NIELSEN)
28 ' >LB
38 ON BREAK SOSUB 46:G0T0 118 >«
48 RUN >PD
58 'M******************* MODE D'EM >LE
PLOI ******************************
**********
68 ' : Choix du sens d'à >LF
rrivee des voitures
78 ' : Déplacement de la >LG
flèche
88 ' ESPACE : Valider >LH
98 ' COPY : Annuler la derme >LJ
re voiture
188 ' ESC(2 fois): Retour au choiK >RB
du sens d'arrivée des voitures
118 '«M*********************** INI >RC
TIALIBATION MUSIQUE .***************
**********
128 DM gamme'/. (12): FOR xï=l TO 12: R >ïA
EAD ganmeSMIiNEXT
138 gamme»»" a-b b c+c d-e e t+f 9+ >QF
g":DËF FNm*(5t,3)=HID*(s*,5,l>
148 DATA U77,îi7ec,4647,W>47,!t5ed,i >DL
598
158 DATA Si547,8i«c,8i4b+,St47«,M3i,& >DH
M
168 ENV 1,15,1,1 >«K
178 ENT -1,6,-1,1,12,.!, 1,6, -1,1 >«C
188 ENV 3,2,5,2, 15,-1,9 >PC
198 ENV 4.2,4,2,12,-1,18,18,8,15 >XN
288 'tu************** 6RAPHISME : >RC
LOCO ïi WAGONS *********************
**********
216 CALL 8M4E >NE
228 SYMBOL AFTER 228 >PQ
238 SYMBOL 221,192,128,128,192,224, >LB
224,48,248
248 SYMBOL 222.3,49,49,255,255,255, >FZ
8,255
256 SYMBOL 223,248,248,252,61,255,1 >KX
89,152,24
268 SYMBOL 224,255,255,255,8,255,11 >JL
5,115,33
278 SYMBOL 225,127,127,127,64,255,1 >6B
4,i4,4
286 SYMBOL 226,255,4,4,7, 7,71, 78,71 >BB
298 SYMBOL 231,3,1,1,3,7,7,12,15 >YF
386 SYMBOL 232,192,148,148,255,255, >KY
255,6,255
318 SYMBOL 233,31.31,63,188,255,189 >GM
.25,24
328 SYMBOL 244,255,255,255,6,255,26 >KD
6.286,132
336 SYMBOL 245,254,254,254,2,255,11 >JD
2,112,32
346 SYMBOL 246,255,32,32,224,224,22 >JX I
6,98,226
356 w*(l)=CHRt(233)+CHR*(244)+CHR*( >BH
245) +CHR» (11) +CHR* (BI+CHR» (8) +CHR» (
8)+CHR$(231!+CHR*(232)+CKR*(246)+CH
R*(18)
368 «1»(1)=CHR$(233)+CHR*(244)+CHR* >FB
(245)
378 u2*(l)=CHR*i231i+CHRti232)+CHR* >FZ
(246)
386 1(11=3 >6E
396 w»(6)=CHR*(225!+CHR*(224i+CHR*( >SB
223) +CHR* (11) +CHR* (8) +CHR» (8) +CHR» (
8) +CHR» (226) +CHR* (222) +CHR* (221 i +CH
R*(18)
486 wl»(6!=CHR*(225)+CHR»(224)+CHR» >FP
(223)
416 w2»(8i=CHR*(226ï+CHR*(222)+CHR» >FN
(221)
428 1(8) =3 >FJ
436 SYMBOL 247,8,8,8,8,6,6,64,94 >YA
448 SYMBOL 248,6,8,8,8,6,8,2.122 >YK
458 SYMBOL 249,94,94,127,255,127,56 >GL
,56,16
468 SYMBOL 256,122,122,254,255,254, >HB
28,28,8
■ 476 M*(2i= CHR»(249)+CHR»(256i+CHR* >LT
(lt)+CHR»(B)+CHR*(8)+CHR*(247i+CHR*
(248)+CHR$(18)
486 «1»(2>= CHR«(249)+CHR*(256) >XG
496 »2»(2)=CHR*(247)+CHR»(24B! >XU
588 1(21=2 >FJ
516 SYMBOL 252,6,8,127,127.66.68,68 >DD
.68
528 SYMBOL 253,8,6,254,254,34,34,34 >DC
,34
538 SYMBOL 254,127,127,127,255,127, >JD
56,56,16
546 SYMBOL 255,254,254,254,255,254, >HU
28,28,8
556 w»(3)=CHR»(254)+CHR»(255)+CHR»( >KP
1 1 ) +CMR* (Bl+CHR* (8) +CHR* (252) +CHR» (
253)+CHRt(16)
566 wl»(3)=CHR*l254)+CHR*(255i >XK
576 «2»(3)=CHR$(252!+CHR*(253> >XK
588 1(3)=2 >GH
598 '***************** AFFICHAGE PE >TE
RMANENT ***************************
**********
686 KEY DEF B,6:KEY DEF !,8:KEY DEF >EN
47,8
618 SPEED INK 25,25 >MN
626 INK 6,1: INK 1,1: INK 2,1: INK 3,1 >UV
ilNK 4,1:INK5,1:INK 6,1:1* 7,1:IN
K 8,1:INK 9.UINK 18,1:INK 11,4,1:1
NK 12,1:PAPER 6:BORDER l:MODE 6
636 LOCATE 3,1:PEN 4:PRINT STRINBtî >EX
16,146):L0CATE 3,2:PRINT STRIN6*U6
,143):L0CATE 3,3:PRINT STR1NG»(16,I
31)
648 LOCATE 4,2:PEN 6:PAPER 4:PRINT" >WO
LE PETIT TRAIN"
656 PAPER 16:F0R i=16 TO 19:L0CATE >QQ
3,i:PRINT STRING»(6,32):L0CATE 18,i
:PRINT STRINB$(4,32):L0CATE 15,i:PR
INT STRINB$(4,32):NEXT
668 PEN 8:LOCATE 5,18:PRINT w*(l):L >LS
OCATE 11,18:PRINT H»(2):L0CATE 16,1
8:PRINT w»(3)
678 PAPER 8: FOR i=21 TO 24: LOCATE 1 >RD
,i:FOR j=i TO 7:PEN j:PRINT CHR*Î14
3)+CHR*(143)i:IF ,i<7 THEN PRINT" ";
688 NEXT j,i >ED
696 LOCATE 1,7:PEN 8:PRINT STRINB»! >MA
26,288) iPEN INT(RND*7)+1:L0CATE 2.6
:PRINT x»(l);
766 FOR i=5 TO 19 STEP 2:PEN INT(RN >HL
D*7)+l:LOCATE i,6:PRINT wtUNTtRND*
2i+2):NEXT
716 LOCATE 1,12:PEN 8:PRINT STRIN6» >JB
(28,268!:PEN 6:L0CATE 4,11:PRINT «*
(ii;L0CATE 15.11:PRINT w$(6)
728 PEN 1 1 : LOCATE 8,11:PRINT CHR»(2 >YY
42):PEN 12:L0CATE 13,11:PRINT CHR»!
243)
738 INK 6,1:INK 1,B:INK 2,11:INK 3, >TB
9: INK 4,24:INK 5, 15: INK? 6, 6: INK 7,2
6: INK 8,8:1»: 9,13: INK 16,14: INK 11
,24,1: INK 12,1,24
748 r*=INKEY*:IF r*="" THEN RANDOMI >NP
ZE TIHE:S0TO 748 ELSE r=ASC(r»)
756 IF r=242 THEN force=l:SOTO 796
766 IF r=243 THEN *orce=2:60TD 796
776 GOTO 748
788 f=6:l=8:nw=9
798 UINDOW #1,1,26,5.12:PAPER *1,8:
CLS tl
866 '************* TIRAGE AU SORT D
ES FORMES !,. COULEURS **************
**********
818 RANDOMIZE TIME
828 FOR 1=2 TO 9:f (i)=INT(RND*2)+2:
NEXT: f( 11=1
838 RANDOMIZE TIME
848 FOR .i=l TO 9:c(i!=INT(RND*7)+l:
NEXT
856 '************************* ARRI
VEE DU TRAIN **********************
**********
866 LOCATE 1,7;PEN 8:PRINT STRINB»!
28,268)
878 j=«:TA6
886 car/.=l:ca2:<:=l;viK=16:hh=8:hb=2
898 cal»="r4G4E4D4C5BÎS8F4B4F4E4D5C
>BE
>BH
>LJ
>GA
>NY
>PC
>NA
>GN
)TD
>ZC
>DB
>BN
f24l
3S8E5E3F4E4D4C4B4C4D4E4CiA2B2FlE2B5
C3A4C. "
980 ca2$= il r2C2E2q2E2C2E2q2E2q2S2q2B >WB
2q262g2S2e2E2e2£2q2fi2q2B2C2E2g2E2C2
C2D2+D2e2E2e2E2e2D2e2D2t2F2«F2<2F2
f 2F2C2E2g2E2g2D2g2D2C2E2C2F4C, "
910 SOSUB 1638 >OB
92» FOR 1=19 TO 1 BTEP -0.4:j=j+0.3 >XU
45:BRAPHICS PEN cil)
93» HÛVE l*32,319:PRINT wi$!l)::NOV >BZ
E i*32,335:PRINT b2$(1);
948 FOR s=3 TO.J STEP 2:6RAPHICS PE >NK
N ciix+11/2)
95» HOVE i*32+x*32,319:PRINT »l*if( >RN
(K+i)/2) ): :MOVE i*32+;<*32, 335: PRINT
w2*(f ; tx+l>/2) ) ;
968 NEXT x,i;TABQFF >PH
97» LOCATE 1,12:FEN 8:PRINT STRINGt >LK
(28,208!
938 ************************* CLAV >TH
1ER *******************************
**********
99* PEN 18 >SK
1888 FOR i=l TO 9 >BH
1018 x=6:LOCATE 6,15:PRINT CHR*(24i >B«
)
1020 IF INKEYtO" THEN 1020 >UE
1838 r$=INKEY*;IF r*=" THEN 1030 E >PA
LSE r=ASCir$S
1048 IF l-=241 OR r=240 OR r=ll OR r >LC
=18 THEN 1030
1050 IF r=242 OR r=8 THEN dx=5*ix>6 >BC
]
1868 IF r=243 OR r=9 THEN dx=-5*(x< >DV
16)
1878 IF r=32 OR r=B8 THEN rt(i)=x\5 >HH
:LOCATE x,15:PRINT" ":BOTO 1118
1080 IF r=224 ANC" i>l THEN LOCATE x >AK
,15:FRINT" ":60T0 2240
1090 LOCATE x,15:PRINT" ":x=x+dx:L0 >PR
CATE x,i5:PRINT CHR»!241)idx=0
1100 BOTO 1030 >LB
1110 FOR k=l TO 500: NEXT >RH
1120 x=l:LOCATE x,25:PRINT CHR»(248 >DW
)
1138 IF INKEY10"" THEN 1130 >VA
1140 r$=INKEY*:IF r*="" THEN 1140 E >PE
LSE r=ASCir$)
1150 IF r=240 OR r=241 OR r=U OR r >LB
=10 THEN 1148
1160 IF r=242 OR r=8 THEN dx=3*ix>l >BX
)
1170 IF r=243 OR r=9 THEN dx=-3*(x< >DY
19)
11B0 IF r=32 OR r=88 THEN rc(ii=x\3 >PH
+1:LÛCATE x,25:PRINT" N :60T0 1228
1190 IF r=224 ANB i>l THEN LOCATE x >AN
,25:PRINT" ":BOTO 2240
1280 LOCATE x,25:PRINT" ":x=:<+dx:LO
CATE x,25:PRINT CHR$(240i:dx=8
1218 BOTO 1140
1228 '********************** ARRIVE
E DES WAGONS **********************
**********
1230 BRAPHICS PEN rc(li:TA6
1248 IF force=2 THEN 2030
1250 FOR i-20 TO 1+1 BTEP -8.4
1260 IF rf(i)=l THEN SOUND 1,0,13,0
,1,0,1 ELBE SOUND 5,1978,4,9,0.1,0
1270 NOVE 32*j,239:PRINT xltirtiiii
+" " ; : MDVE 32*.j,255:PRINT »2*irf(ii
1280 IF rtîl)=i THEN FOR k=l TO 58:
NEXT ELSE FOR k=t TO 18:NEXT
1298 NEXT j
1388 TA60FF: 1=1+1 (rf(i)i:lt-!i)=l: IF
1>17 THEN nw=i:i=9
1318 NEXT 1
1320 'm****************** ANALYSE
DES REPONSES *********************
**********
1330 IF tora=2 THEN 2190
1340 FOR 1=1 TO m
1350 IF rffi)Of(i) OR rcli)Oc(i)
THEN MOVE il+lr ( i) )*32, 223:DRAWR -i
(t-f(i))*32,32,6:N0VER 0,-32:DRAM 1
irf (il 1*32,32, o:WVE il+lr (1)1*32-4
, 223: BRAWR -1 M ( 1 ! ! *32, 32, 6: MOVER
0,-32: DRAW 1 irfii! 1*32,32,6: t=f+l
1360 NEXT
1370 IF f>0 THEN 1518
1388 ***************************** .
* GAGNE ***************************
**********
1390 cal*="r9C6E9B6A6C9qr9C6D9E9B9B
r9C6E9D6A6C9gr3A6C3A6B6A6g6B9Cr6C6C
2b2+g2B6e6Ar6A9qr6C6C6D6E969Sr6C6C2
b2+g2B6e6Ar6A9qr3A6C3A6B6A6g6B9Cr9C
6E9D6A6C9gr9C6B9EVB9Gr9C6E9B6A6C9gr
3A6C3A4B6A6g6B9C. "
1480 ca2$="r6C6E6C6E6t6F6C6Er6C6E6C :
6E6g6D6g6Dr6C4E6C6E6W6C6£r6F6F6f6
F696D6C6Er6E4E6B6E6Ar6F6C6qr6E6C6B6
D656D6g6Br6C6E6B6E6Ar6F6C6gr6fiF6f6
F6q6D6C6Er6C6E4C6E4f4F6C6Er6C6E6C6E
6g4D6g6Br6C6E6C6E6f6F6C6Er6f6F6'F6F6
g6D6C. "
1410 cari=l:ca27.=2:vit7.=4:60SUB 163 :
1420 TAG: IF <orce=2 THEN 2100 ;
1430 FOR 1=1 TO -19 STEP -0.4:BRAPH :
ICS PEN cil)
1440 MOVE i*32,399-16*10:PRINT wl*( ;
l);:HOVE i*32,399-16*9:PRINT u2$!t)
1450 FOR x=3 TO 17 STEP 2:BRAPHICS :
PEN c(x\2+l)
1460 HOVE i*32+x*32,239:PRINT wltif ,>NF
(x\2+l ) ) ; :MOVE i*32+x*32,255: PRINT
«2$(f(x\2+D):
1478 NEXT x:M0VE 1*32+608, 239: PRINT >Oû
" "::HOVE i*32+60B,255:PRINT" ";
1488 IF cal7.=0 AND ca2X=0 THEN BOSU >FA
B 1638
1490 NEXT iiTABOFF >NF
1500 BOTO 1580 >HH
1510 '***#********************* FER >XK
DU ********************************
**********
1528 cal»="flelglel-el-gl-eldlfld6e >HB
1538 ca2*="r3g3A3B6C."
1548 vitï=20:hh=2:hb=l
1550 calï=iica2X=l
1568 80SUB 1638
1578 '********************+***** FI
N *********************************
**********
1588 PEN 1 1 : LOCATE 9.8:PRINT"0 n ::PE
N 4:PRINT"/";:PEN 12:PRINT"N"
1590 i*=UPPER*(INKEY*):IF i$="0" TH
EN 780
1608 IF i*="N" THEN I»; 8.13:INk 1,
8:PAPER 8:PEN l:BORDER 13:H0DE 2:EN
D
1618 BOTO 1590
>NA
1620 '#*#************************ M
>YB
LB
USIQUE ****************************
NU
**********
YE
1630 calï=l: 60SUB 1660
>8H
1640 ca27.=l:GOSUB 1848
>DK
1650 RETURN
:>ff
RB
1660
.■ÏF
1670 pl$=FIMlcal*,cal%)
;>rc
1688 IF pl*OV THEN rl7.=0:6OTO 17
>cw
08
1690 rl%»14:calX«calï+l:pl*=FN»$(ca
>KL
l*,cal%)
PQ
1788 IF Pl*=\" THEN cal7.=0:RETURN
ELSE llï.=VAL(Pl»)
>UF
1718 calï=calX+l
>AB
1728 nl*=FN«i*(cal»,cal'/.J
>RH
1730 calï=calï+l
>AB
1748 IF nl*=' ; +"^OR nl$="-" THEN 181
8
1750 nl*=" "+nl*
>Zï
DR
;>U6
1760 ndr/.= (l+INSTR!gai«e*,LOHER*(nl
>KV
UA
$i)i/2
HZ
1770 IF ASC(RI6HT$(nl«,lli>96 THEN
olï=hh ELSE ol7.=hh*2
>XL
UA
1788 SOUND l+ri?.,ga««>?.(ndl'/.)/ol7.,'v
itï*llï,6,3
>PN
1790 ON SQil! 60SUB 1660
>RC
NP
1888 RETURN
>FC
'* ..*'•■■*■'•
1810 r, t$=nit+FNmtica!*,calï)
>VJ
1B28 cal7.=cal7,+l
'AD
1830 SOTO 1740
>ND
1848 '
>ïF
185D p2*=FNm*(ca2$.ca27.)
«F
1868 IF p2*OV THEN r27.=0:6OTO 18
•LH
60
1878 r27.=8: câ2'/.=ca27.+l: p2*=F Nu* ica2
;JD
*,ca2X)
1880 IF p2$="." THEN ca27.=0:RETURN
>VL
ELSE 127.=VAL<p2»i
1890 ca27,=ca2ï+l
>BC
1900 n2*=FNm*tca2*.ca27.J
>RZ
1919 caZi=ca2ï+l
>AF
1929 IF n2*="+" OR n2*="-" THEN 199
)ZK
8
1930 n2*=" "+n2*
>UJ
1948 nd27.= (l+INSTR!qaiMieJ,L0tlER$ln2
>KX
*)))/2
1956 IF ASC(RI6HT$(n2*,lii;>96 IHEN
>XB
o27.=hb ELSE o27.=hb*2
i960 SOUND 2tr2ï,ga»«eï(raj27.!/o27.,ï
>PN
l«*12î,0.4
1978 ON 50(2! SOSUB 1848
..RD
1988 RETURN
>6B
i998 n2$=n2t+FN(n* (cà2*. ca27J
m
2900 ca27.=ca27.+i
,>ZB
2010 GOTO 1940
.»HE
2020 '********#*'************ ARRIVE >XG
E DES BASONS force 2 **************
**********
2030 IF rf(i)*l THEN rf(ll=0:t il 1=0 >BV
2040 FOR j=-l-l(rf!i)l TO 18-lir+u >NJ
)i-l STEP 0,5
2059 IF rtil}=0 THEN SOUND 1.8,13.0 >HP
,1,8,1 ELSE SOUND 5,1978,4,9.0,1.0
2868 HOVE 32*j,239:PRINT " "+wl*lrf >AF
(i));:HOVE 32*i,255:PRINT " n +n2*tr
liliSi
2979 IF rt(l)=8 THEN FOR k=l !0 58: ;F6
NEXT ELSE FOR k=l TO 10-.NEXT
2888 NEXT j:60TO 1380 >PR
2090 '*************************** D >YD
EPAR7 FORCE 2 *********************
**********
2100 FOR i=17 TO 37 STEP 0.4:BRAPHI >LN
CS PEN ctl!
2110 MOVE i*32,239;PRINT «l$(0i::KO >EU
VE i*32, 255: PRINT »2*C0)i
2120 FOR 2=2 TO 16 STEP 2;6RAPHICS >N6
PEN c\;<\2+!>
2130 HÛVE i*32-s*32,239:PRINT »!$« :>Nt
i;<\2+li;;:H0VE i*32-;i*32,255:PRINT
w2*«.fis\2*li)!
2148 NEXT k;IWE i*32-544,239:PRINT >QM
I" ";:I«E 1*32-544. 255: PRINT" "i
2159 IF cai7.=0 AND ca27.=0 THEN SOSU >FV
B 1630
2160 NEXT i:TA60FF >NA
2170 BOTQ 1580 >NB
2180 ********************** ANALVS >VD
E REPONSE FORCE 2 *****************
**********
2190 FOR 1=1 TO nti >LR
2280 IF rf(iKHu) OR rcUiOcii) >HB
THEN HOVE (19-lr(i)i*32,223:DRANR 1
(rfu)i*32,32,6:l10VER 0.-32: DRAW -
l(rf(i))*32,32,6:IWE il9-lr(ii>*32
-4,223:BRAHR llHfii 1*32,32, o:MER
0,-32:DRAHR -l(H(i))*32,32,6:f=f+
1
2210 NEXT -*G
2220 60T0 1370 .'HE
2238 ************************ CORR >XK
ECTIQN ****************************
**********
2240 IF *orce=l THEN LOCATE 2+1-1 (r >JU
+11-1)1,11 ELSE LOCATE 20-1,11
2259 PRINT STRING*illr»<i~l!>.32( >BL
2260 IF torce=l THEN LOCATE 2+1-1 !r >JU
Til-ll),10 ELSE LOCATE 29-1.18
2276 PRINT STRING*ilii-t(i-ii!,32> .«
2280 1=1-1 (rt li-1! ; : i=i~i >TG
2298 GOTO 1810 .«•
MAGNETIC
• Pierre SCHAAF
De evolutionus sphérum ou les
aventures d'une bille aimantée se
promenant sur un tableau quadriï
Or, çà et là ont été disposés, par un
ordinateur malicieux des aimants de
même signe que ladite sphère. Les lois -
de la physique étant ce quelles sont, la
trajectoire de la boule métallique est
déviée. A vous d'en déduire la position
des aimants. Simple, non ? Le mode
d'emploi est inclus dans le listing.
r26l
I
19 REM **♦ MA6NETIC *** >PE
15 REM *** SCHAAFF PIERRE •** >VG
20 REM «*» présentation *** >VN
3» MODE 8: BORDER 0:INK 8,8:11*: 1,16 >Z9
:INK 2, 14: M 3,17:INK 4,9:1»: 5,24
:INK 6,2:INK 7,21: INK 6, 15: INK 9,11
:INK 18,22: INK 11,25
48 DATA M,A,6,N,E,T,I,C
>RT
M FOR i=l TO 8
>NK
68 READ a*(i)
>DB
70 NEXT
>ÏH
B0 LOCATE 4,3
>HK
98 FOR i=l TO 8
?PD
188 PEN i:PRINT a$(i);" ";
>TE
118 NEXT
>DH
128 PEN 9:L0CATE 5.4:PRINT"
>PZ
138 PEN 18:L0CATE 8,5:PRINT"
>GB
140 PEN lkLOCATE il,6;PRINT"_"
>Z6
158 INK 12,8; INK 13,8: INK 14,8:PRIN >VP
T CHR*(22)+CHR*(i)
160 FOR i=3 TO 12
>CD
178 a=INTU.6'-i)
>LW
188 PLOT l,206-a:DRAW 63B,208-a,12
>AZ
198 NEXT
>EF
288 FOR i=30 TO 278 STEP 68
>TP
210 PLOT 319+1,195: DRAW 319+2*1, 1
>ZR
228 PLOT 319-i,195:DRAW 319-2*1,1
>ZX
230 NEXT
)EA
248 QRIB1N 298,135
>MO
250 FOR i=PI/2 TO STEP -0.03
>w
260 a=70»COS(i):b=20»SIN(i)
m
270 PLOT a,b,13:DRAW -a,b:PLOT -a,
- >NY
b:DRAW a,-b
288 NEXT
>EF
298 ORIGIN 358,180
>MT
300 60SUB 600
>GJ
318 FOR i=PI/2 TO STEP -8.83
>WD
328 a=78*COSii);b=70*SIN(i>
>VD
338 PLOT a,b,14:DRAW -a,b:PLOT -a.
- >NW
b:DRAW a,-b
348 NEXT
>EC
350 FOR k»l TO 7
>WD
368 SOUND 1,430, 10, 15,,, 1
,>RA
378 INK 12,26: INK 13, 13: INK 14,6:PR >YD
INT CHR*(22)+CHR»(8)
388 FOR j=0 TO 50: NEXT
>qB
390 INK 12,0: INK 13,0: INK 14,8:PRIN >VW
T.CHR$(22)+CHR»(1)
408 NEXT
>DK
410 r=60:SOSUB 570:GOSUB 600:r=50:G >LA
OSUB 578
420 ORIGIN 0,0
>QG
430 PLOT 258,220, 14: DRAW 278,228
>YH
448 PLOT 235,228:PL0T 228,228
>m
458 PLOT 238, 180: DRAW 250,180
>wd
460 PLOT 210, 180: DRAW 220,180
>HZ
. ' h
|i i i, i i i i l l)
ïïffâm
478 PLOT 288,188
>CA
480 PLOT 280, 150: DRAW 295,158
>WQ
498 PLOT 258, 150: DRAW 265,150
>WK
500 PLOT 235, 150
>BK
510 PLOT 250,130;DRAW 255,130
>WX
528 PLOT 265, 138: DRAW 278,130
>WB
538 PLOT 280, 130: DRAW 290,138
JWB
540 PLOT 188,178:DRAW 208,178
>WA
550 INK 12,26:INK 13,13: INK 14,6:PR >YD
INT CHR$(22)+CHR$'(8)
568 CALL MB66:6QT0 700
>QH
570 FOR i=PI/4 TO STEP -0.83
>WP
58» PLOT r*COS(i),r*SINU!,12
)YE
590 N£XT:RETURN
>MJ
608 FOR i=l TO 15
>CD
610 SOUND 2,440,25, i,,l
>OH
620 SOUND 2, 415, 28, i
;>nc
638 NEXT:R£TURN
>m
708 REM m* initialisations *»*
>ZR
710 MODE 1: BORDER 9: INK '8, 9: INK 1,0
>UH
:INK 2,26: INK 3,6
728 SYMBOL AFTER 232
:>pz
738 SYMBOL 232,102,102,195,195,195,
>LZ
231,126,32
808 REM **» règles ♦**
>NA
818 PEN 1: LOCATE 4,12:PRINT"voulez-
>NH
yous les régies (O/N)?"
828 a*=lPPER*UNKEY*):IF a$=" THEN
>FY
828
838 IF at="0" THEN 80SUB 3500: GOTO
>DP
858
840 IF a»<>"M" THEN 828
>PK
858 CLEAR:x=5:y=18:xa=x:ya=y
>ZF
868 DIM ai»ant'(33,22), essai (33,22)
>BD
878 ORISIN 1,1: GRAPHICS PEN 1
>XS
888 RESTORE 1610
>LF
900 REM **♦ jeu avec ou sans trace
>CM
***
918 SYMBOL AFTER 147
>PF
928 FOR i=147 TO 156
>MT
930 SYMBOL i,8
>WB
948 NEXT i
>PB
958 CLS:PEN l:LOCATE 4,10:PRINT"Vou >YU
lez-vous le trace du deplace«ent";L
OCATE ll,14:PRINT"de la bille (O/N)
?"
968 a*=UPPER$(INKEY*):IF a*="" THEN >FJ
960
978 IF a*="0" THEN 990 >NU
980 IF at<;>"N" THEN 960 ELSE 1058 >XA
998 SYMBOL 147,24,24,24,31,15 >WP
1800 SYMBOL 149,24,24,24,24,24.24,2 >EB
4,24
1018 SYMBOL. 150,8,8,8,15,31,24,24,2 >BY
4
1820 SYMBOL 153,24,24,24,248,248 >YU
1030 SYMBOL 154,0,0,0,255,255 >WQ
1848 SYMBOL 156,8,0,0,248,248,24,24 >DM
,24
1050 SYMBOL 232, 102, 102, 195, 195, 195 >ML
,231,126,32
,1060 CLS:LOCATE 12,12:PEN 2:PRINT"V >BA
EUILLEZ PATIENTEZ":FOR i=0 TO 500:N
EXT
1100 REM *** calcul position des ai >LB
mants ***
1110 RANDOMIZE TIME >PD
1120 nbrai»ant=INT(RND(l)*10+l):IF >BZ
nbraimant<5 THEN 1120
1130 FOR i=l TO nbraifliant >UB
1148 posk=INT(RNDU!*29+1):IF posx< >RH
6 OR po5s/2=INT(posx/2) THEN 1148
1158 posy=lNT(RND(l)*18+l):IF POsy< >TP
3 OR posy/2<>INT(posy/2) THEN 1150
1168 IF ai«iantfpo5ï,posyi=t THEN 11 >LR
40 ELSE aimant(posx,posy)=l
1178 NEXT i >VE
1288 REM ♦*♦ dessin écran *** >V6
1218 CLS:INK 1,9; INK 2,9: INK 3,9:PR >Y0
INT CHR$(22)+CHfit(l)
1228 FOR i=390 TO 78 STEP -32 >UV
1238 PLOT 54, i: DRAW 500, i >TK
1248 NEXT i >VC
1258 FOR i=54 TO 528 STEP 32 >UA
1268 PLOT i,70:DRÂW i,390 >TU
1278 NEXT i >MF
1280 FOR 1=94 TO 446 STEP 32 >UG
1298 PLOT i, 358,0: DRAW i+16,358 >YL
1380 PLOT i,182:DRAW i+16,182 >WC
1318 NEXT i >VA
1320 FOR i=334 TO 110 STEP -32 )VM
1338 PLOT 86, i: DRAW 86,1+16 >VY
1348 PLOT 470, ilDRAki 478, i+16 >WZ
1358 NEXT i >vE
1360 FOR i=2 TO 16 STEP 2 >QW
1370 LOCATE 2,i+2:PRINT i/2 >VW
1380 NEXT i >VH
1390 FOR i=7 TO 29 STEP 2 >RA
1488 LOCATE i,22:PRINT CHR»(61+i/2) >CH
1410 NEXT i >VB
1420 PLOT 22,38, i:DRAW 624,3B:DRAW >EF
624,6:DRAW 22,6:DRAW 22,38
1430 PLOT 21,40:DRAW 626,48:DRAW 62 >CB
6, 5: DRAW 21, 5: DRAW 21,48
1440 PEN 2:LOCATE 34,16:PRINTai«ian >EL
t":LOCATE 35, 17: PRINT"»al": LOCATE 3
4,18:PRINT"plact:"
1450 PLOT 518, 166,1: DRAW 630, 166: DR >PL
m 630, 70: DRAW 518, 78: DRAW 518,166
1468 PLOT 516, 169: DRAW 632, 169: DRAW >MN
632,69:DRAW 516,69:DRAW 516,169
1478 ORIGIN 560,220 >MM
1480 r=33:BOSUB 1520:r=27:6OSU8 157 >WC
0:r=23:SOSUB 1578
1498 ORISIN 600,350 >MN
|TT i i i ! i ! H
k'-'-'j-'-aS- 1
>wt
1500 r=33:G0SUB 1520:r=27:SOSUB 157
1969 ya=y+2:60T0 1878
>PB '
6:r=23:S0SUB 1579
2968 REM ♦»* déplacement de la boul
>FB
1518 1NK i,0:itt. 2,26: II* 3.6:PRINT >FH
e #**
CHR*(22S+CHR»(6):60TD 1616
2919 IF (K=5 AND y=2) OR (x=31 AND
>DR
1526 FOR i=9 TD PI/2 STEP 6.05
M
y=2) OR (x=5 AND y=28) OR (x=31 AND
153» a=r*COS(i):b=r*SIN(ii
)VJ
y=26) THEN 1699
1540 PLOT a,b,3:PLQT -a,-b:PLOT -a,
)NS
2029 IF x=5 THEN sens=l
>RB
bîPLOT a,-b
2839 IF x=31 THEN sens=2
>Ri
1559 NEXT i
>V6
2946 IF y=2 THEN sens=3
>RD
1560 RETURN
>FF
2959 IF y=20 THEN sens=4
>R6
1578 FOR i=0 TO PI/4 STEP 6.95
M
2868 LOCATE ;<,y:PRINT" "
>TH
1589 PLOT r*CQS(i),r*SIN(i),2
>YC
2876 ON sens 60T0 2116.2149,2176,22 >CZ
1598 NEXT i
M
99
1699 RETURN
>FA
2989 IF essai(x,y)=l THEN essaHx.y
>NY
1619 DATA G,N,E,T
)LJ
)=0:coup=coup-l
1629 LOCATE 34,4:PRINT"M":60SUB 486
>RA
'2999 LOCATE x,y:PEN 2;PRINT CHRt(23
>EM
8:L0CATE 34,6:PRINT"A":G0SUB 4999
1)
1639 FOR j=34 TO 49 STEP 2
>RR
2199 xa=x:ya=y:G0T0 1699
>UP
1649 READ a*:LOCATE j,8:PRINT a*:GO
>KE
2119 GOSUB 2300:x=x+2
>PM
SUB 4989
2128 IF INKEY(69)=0 THEN x=5:y=2
>ZN
1659 NEXT j
>VJ
2138 IF x=31 OR x=5 OR y=2 OR y=20
>RH
1669 LOCATE 46,10:PR1NT'T I :SOSUB 49
>VP
THEN 2889 ELSE 2978
89:L0CATE 46,12:PRINT"C":S0SUB 4969
2149 BOSUB 2300iX=x-2
>PT
2156 IF INKEY(69)=0 THEN x=5:y=2
>ZR
1679 PEN 2:L0CATE x,y:PRINT CHR*(23
>E«
2169 IF x=5 OR x=31 OR y=2 OR y=20
>TE
1)
THEN 2886 ELSE 2876
1689 REM *** entrée clavier ***
>XJ
2176 BOSUB 2366:y=y+2
>PW
1699 àt=UPPER*(INKEY*);IF a*="" THE M
2188 IF INKEY(69)=8 THEN x=5:y=2
>zv
N 1699
2199 IF x=5 OR x=31 OR y=29 OR y=2
>TF
1788 IF a*=CHR*<242) OR a$=CHR*(243
>KN
THEN 2889 ELSE 2676
) THEN 1899
2289 60SUB 2380:y=y-2
>PR
1718 IF a$=CHR*(240) OR a*=CHR*!241
>KK
2218 IF INKEY (691=0 THEN x=5;y=2
>ZN
1 THEN 1999
2226 IF x=5 OR x=31 OR y=2 OR y=28
>TB
1729 If a*=CHR«<224) THEN 2999
>VH
THEN 2886 ELSE 2678
1739 IF a*="P" THEN 2898
>qp
2366 REM ♦** test de position des a
>LC
1748 IF a*="S" THEN 3699
>QL
imants ***
1758 IF a$="A" THEN 3199
>PC
2319 aimant=l
>8B
1769 GOTO 1699
>NH
2326' IF aimant (x+2,y)=l THEN aimant
>NH
1888 REM «m déplacement droite-oau
>KB
=aimant+l
che »**
2330 IF aimant lx-2, y) =1 THEN aimant
>NM
1819 IF y=2 OR y=26 THEN 1829 ELSE
>CD
=aimant+2
1699
2349 IF aimant(x,y+2)=l THEN aimant
>NN
1828 IF a»=CHR*(243) THEN 1856
>hp
=aimant+4
1838 IF x=5 THEN 1698
>N0
2359 IF aimant (x,y-2)=l THEN aimant >N«
1849 xa=x-2:6QT0 1876
>PV
=aimant+8
1858 IF x=31 THEN 1698
>PV
2366 ON aimant BOSUB 2389,2418,2476
>BB
1868 xa=x+2
>XD
, 2386, 2530,2596, 2660, 2538, 2610, 2678
1879 LOCATE x,y:PRINT" ":LOCATE sa.
>FK
,2689,2616,2386,2416,2478
ya:PEN 2:PRINTCHR*(231)
2378 RETURN
>FF
1889 x=xa:y=ya;GOTO 1698
>UE
2386 IF sens=l OR sens=2 THEN trace
>QV
1989 REM *»* déplacèrent haut-bas <
>DX
»=CHR*(154) ELSE trace*=CHR*(149i
1919 IF x=5 OR x=31 THEN 1926 ELSE
1690
1920 IF a»=CHR*(241) THEN 1950
1930 IF y=2 THEN 1698
1940 ya=y-2:60TO 1878
1958 ÎF v=26 THEN 1698
2398 IF x=5 OR x=31 OR y=2 OR y=29 >DT
THEN RETURN ELSE BOSUB 2698
2400 RETURN >EK
2410 ON sens GOTO 2429,1699,2459,24 >CW
69
2429 IF x=5 THEN x=3:y=2:RETURN >ZG
2430 IF (aimant=14 AND sens=l) THEN >BR
sens=2:x=x-4i RETURN
2440 BOTO 2530 >MH
2459 sens=2:trace*=CHR»(153):60SUB >BP
2699:y=y-2;x=x-2:RETURN
2466 sens=2:trace*=CHR*(156):60SUB >GR
2696: y=y+2: x=:<-2: RETURN
2476 ON sens GOTO 1698,2480,2516,25 >CC
26
2486 IF x=31 THEN x=33:y=28: RETURN >CB
2496 IF (ai»ant=15 AND sens=2> THEN >BX
sens=l:x=x+4:RETURN
2588 GOTO 2618 >MD
2516 sens=l:trace*=CHR*il47):6QSUB >6L
2690: y=y-2:x=x+2: RETURN
2520 sens=l:trace»=CHR*( 156): GOSUB >SD
2696: y=y+2:x=x+2: RETURN
2538 ON sens BOTO 2540,2556,2566 >YA
2548 sens=4:trace$=CHR*( 153): GOSUB >SR
2698: x=x-2: y=y-2: RETURN
2550 sens=4:trace»=CHR*fl47):B0SUB >GU
2690:x=x+2:y=y-2:RETURN
2566 IF y=2THEN x=31:y=6;RETURN >AM
2570 IF (aimant=8 AND sens=3) THEN >AH
sens=4;v=y-4:RETURN
2580 GOTO 2470 >NF
2590 IF sens=l THEN 2530 ELSE 2410 >ZY
2600 IF sens=2 THEN 2530 ELSE 2470 >ZX
2618 ON sens BOTO 2626,2630,1690,26 >CA
49
2620 sens=3:trace*=CHR$U56):S0SUB >SQ X
2690: x=x-2:y=y+2: RETURN
2639 sens=3:tracet=CHR»( 150): GOSUB >6H
2699: x-x+2:y=y+2: RETURN
2640 IF y=28 THEN x=5:y=22:RETURN >BU
2650 IF (aimant=12 AND sens=4i THEN >BY .'
sens=3:y=y+4:RETURN
2660 BOTO 2410 >MJ
2679 IF sens=l THEN 2616 ELSE 2419 >Z«
2689 IF sens=2 THEN 2610 ELSE 2470 >ZE
2690 IF essai(x,y)=l THEN essai(x,y >«F
)=9:coup !: coup-l
2700 PEN 3:L0CATE x,y:PRINT trace* >CZ
2710 RETURN >FD
2888 REM.»»* placer un aimant *** >YV
2816 IF coupOnbraimant THEN 2848 >BF
2828 PEN 2:LOCATE 5,24:PRINT , Suppri >F'F
mer d'abord un aimant"
2830 BOSUB 4660:FOR i=l TO 2066:NEX >CU
T i: GOSUB 3356: GOTO 1696
2840 GOSUB 2896 >YF
2858 LOCATE joux, jouy:PEN 2:PRINT C >MA
HR*(232)
2866 IF aimant (. joux, jouy)=l THEN se >TE
ore=5core+l
2870 essai (joux, jouy)=l:coup=couptl >GF
2880' IF coup=nbraimant THEN 3206 EL >JX
,SE 1690
,28 .
|'d±y±!ii:i
■MM*»' ■ SÇj.g-fj^Ç]
2890 PEN 2:L0CATE 5,24:PRlNT"Coordo >FX
nnees (lettre,chiMre)"|:SOSUB 4060
2900 INPUT joux*,jouy >RF
291® joux=ASCijoux*):IF joux>90 THE >WK
N joux=joux-32
2920 IF (jouy<l OR jouy>8 OR joux<6 >XU
5 OR joux>76) THEN GOSUB 3350: BOTO
2890
2930 joux=(joux-59)+ljoux-64):jouy= >RB
(jouy+l)*2
2946 8D5UB 3350 >XJ
2950 RETURN >FK
3000 REM *** suppression d'un aiman >U2
t *+*
3010 GOSUB 2890 >XF
382* IF essai (joux, jouylOl THEN 30 >E¥
10
3030 LOCATE joux,jouy:PRINT" " >AR
3040 IF aimant!joux,jouy)=l THEN se >RF
ore=score-i
3050 essai (joux, jouy)=0:coup=coup-l >6X
3060 BOTO 1690 >NC
3100 REM *** abandon *** >QE
3110 PEN 2;L0CATE 5,24:PRINT"Positi >VW
on des";nbraimant; "aimants"
3120 BOSUB 4060:FOR i=l TO 2000;NEX
T i
3130 FOR i=7 TO 29 STEP 2
3140 FOR j=4 TO 18 STEP 2
3150 IF aimant(i,ji=l THEN LQCATE i >DT
,j:PEN 1:PRINT CHR$!232)
3160 NEXT j,i >KJ
3170 LOCATE 5,24:PEN 2:PRINT score; >PA
"aimantlsi bien place(s)"
3180 BOSUB 4060: FOR i=l TO 4000: NEX >DH
T i
3190 6QT0 3300 >M6
3200 REM *** tous les aimants sont >LU
places ***
3210 PEN 2:LQCATE 5,24:PRINT nbraim >AT
ant;"ai«ants a placer au total"
3220 LOCATE 35,20:PRINT" " >VL
3230 GOSUB 4060:FOR i=l TO 2000:NEX >DP
T i
3240 IF coup=score THEN 3280 >NJ
3250 PEN 3:L0CATE 35,2«:PRINT coup- >JE
score
3260 BOSUB 4060: FOR i=l TO 2000: NEX >BT
T i
3270 BOSUB 3350: BOTO 1690 >TN
3280 SOSUB 3350: LOCATE 5,24:PRINT"T >FJ
ous les aimants sont bien places"
3299 SOSUB 4060:FOR i=l TO 2000:NEX >DW
T i
3300 BOSUB 3350:BOSUB 4060:LOCATE 5 >BF
,24:PRINT"Voulez-vous rejouer (O/'N)
>DM
>QC
>qz
3310 a$=UPPER*lINKEY»:IF a*="" THE >BW
N 3310
3320 IF a*="0« THEN 850 >PU
3330 IF a*<>"N" THEN 3310 >QY
3340 CLS:BORDER lilNK 0,1:1*: 1,24: >LB
PEN 1:END
3350 LOCATE 5,24:PRINT SPACE*(34! >BC
3360 RETURN >FF
3500 REM »** règles »** >PP
3510 CLS:LOCATE 14,2:PEN 2:PRINT"R >NJ
E B L E S"
3520 LOCATE 13,3:PbN 3:PRINT" >RT
>F6
3530 PEN 1:L0CATE 2,6:PRINT" Vous d
ispasez d'une bille aimantée pourvo
us déplacer sur une grille de jeu."
3540 PRÎNT"Vous ne pouvez déplacer
la bille que surle pourtour de cett
e grille."
3550 PRINT:PRINT" Par contre, la bi
lie peut être lanceesur la grille
, elle se déplace en lignedroite p
aur atteindre le cote oppose."
3560 PRINT:PRINT" Bien entendu, l'or
dinateur a dispose, auhasard, des a
imants de même nature surla grill
e, "
3570 PRINT:PRINT" Si un aimant se t
rouve sur le chemin devotre bille,
celle-ci est repoussee etvoit sa
direction modifiée. "
3580 SOSUB 3910
3590 PRINT:PRINT"Exemnle :"
3600 LOCATE 23, 2: PEN 3:PRINT CHRtfl
96)+" "+CHR$(149)
3610 LOCATE 23,4:PRINT CHR$(149)+"
"+CHR*(147)+" "+CHR*(154)+" "+CHR$t
197)
3620 LOCATE 21,6:PRINT CHR*(154)+"
"+CHR*U53)+" "(SPEN 2:PRINT CHR$(2
32);:PEN 3:PRINT" "+CHR»(150!t" "+C
HR$(154)
3630 LOCATE 21,S:PRINT CHR$(199)+"
"+CHR«U54)+" "+CHR*(156)+" "+CHR*(
149)+" "
3640 LOCATE 25,10:PRINT CHR$(149)+"
"+CHR*(198)
3650 FOR i=262 TO 358 STEP 32
3660 PLOT 343,i,l:DRAK 439, i
3670 NEXT i
3680 FOR i=343 TO 439 STEP 32
3690 PLOT i,262;DRAH i,358
3700 NEXT.i
3710 LOCATE 2,5:PEN 2:PRINT CHRK23
2)+" : aimant"
3720 LOCATE 2,7:PEN 3:PRINT CHR*(15
4)+" : trajet bille"
>EU
3730 LOCATE 1,13:PEN l:PRINT"Les ai >VA
sants ne sont pas visibles, a vousd
e déterminer leurs positions en dep
lac-ant la bille sur toute la grill
e. "
3740 PRINT:PRINT"Le nombre d'aima >PF
nts a trouver varieentre 5 et 10
3750 PRINTTorsqu'ils sont tous pla >LY
ces,l'ardinateura-ffiche le nombre d /
'aimants mais places."
3760 PRINT'A vous de les replacer a >KB
u bon endroit..."
3770 BOSUB 3910 >¥C
3780 LOCATE l,7:PRINT"Le jeu possed >HZ
e un mode normal (difficile)et un mo
de trace(-facile),"
3790 PRINTiPRINT'En mode trace, un >£D
trait s'aHiche sur lepassage de la
bille, alors qu'en modenormal,
il ne s'affiche rien."
3800 PRINT:PRINT"Si la bille dispar >BE
ait après un lancementet ne reapara
it plus, elle est entreedans une
boucle et ne peut plus s'enech
apper. "
3810 PRINT:PRINT"Pour la libérer ap >NH
puyez sur la touche Q. " '
3820 BOSUB 3910 >XJ
3830 LOCATE 11, 2: PEN 2:PR1NT"R0LE D >RZ
ES TOUCHES"
3840 LOCATE 10,3:PEN 3:PRINT" >ZA
>YB
"
,>AN
3850 LOCATE 10,6:PEN l:PRINT"(P)lac >YX
>W
er un aimant"
3860 LOCATE 10,8:PRINT"(S)uppriier >X8
>HZ
un aimant"
3870 LOCATE 10,l«:PRINT"(A)bandonne >UK
r le jeu"
>J6
3880 LOCATE 10,12:PRINT M»(240i;C >VN
HR$(241) ;CHR$(242)iCHR$(243) ; " Depl
acer la bille"
3890 LOCATE 10,14:PRINT"(COPY) Lanc >X«
>BA
er la bille"
3900 LOCATE 10,16:PRINT"(Q)uitter u >WU
ne boucle"
>PP
,3910 LOCATE 10,25:PEN 2:PRINT"Appuy >HH
ez sur une touche"
>VE/
3920 CALL &BB06 >UH
>VD
3930 CLS:PEN 1:RETURN >RV
>m
4000 REM *** sonorités *♦* >TV
>VH
4810 FOR i=5 TO 15 >LJ
>UB
4020 SOUND 2,440,l,i )NV
>VF
4030 SOUNB 2,445,1,1 >NB
>UE
4040 NEXT i >VD
4050 RETURN >FC
)DU
4060 SOUND 5,200,50,9 >NH
i
4070 RETURN >FE»
u
POUSSE-POUSSE
I
Le principe de
POUSSE-POUSSE
est simple : vous
devez reconstituer
une suite de mots
ou une image qui
sont contenues dans
un tableau à
l'écran. Le tableau
étant constitué de
caractères mis dans
le désordre.
Vous remarquerez
que, quelque soit le
tableau à
reconstituer, le carré
en bas à droite sera
•David PAVEN
■ ■ • s
ht] Àtr d#UX r#pr " •»****«*»*
':'■'': :,
' t ■ . ■ : , . . , '■
I
toujours vide : c'est
cela qui permettra
I
le déplacement des
parties du tableau.
UN
NUMERO
HORS
SERIE
GRATUIT
TOUS
LES
| DEUX
MOIS
4 REVUES POUR LES PASSIONNES
CPC - REVUE DES UTILISATEURS D'AMSTRAD : en vous abonnant, vous rece-
vrez chez vous votre revue. Vous bénéficierez de réductions sur certains produits et vous
recevrez gratuitement 1 n° hors-série tous les deux mois.
AMSTAR : en avant première, toutes les nouveautés sur AMSTRAD - des programmes,
des articles I A la demande de nos lecteurs, nous prenons désormais les abonnements.
PCompatlbles MAGAZINE : la référence en matière d'initiation et de perfectionne-
ment sur les "compatibles PC.
Attention, tous nos abonnés reçoivent avant parution des souscripthns sur les nouveaux
livres I
ATTENTION I II n'y a pas d'abonnement rétroactif.
□ CPC AMSTRAD 1 1 numéros 220 F
Q 6 numéros 120 F
□ AMSTAR 11 numéros 140 F
□ PCompatibles Magazine 1 1 numéros 200 F
□ Arcades 1 1 numéros 200 F
NOM
Adresse -
Prénom -
Code postal .
Date
Je m'abonne à :
Signature -
CPCHS8
A
B
O
N
N
E
Z
V
O
U
S
r3CM
-'......■■■■'"-.y...'
POUSSE-POUSSE possède trois
niveaux : dans le premier le tableau
mesure 4*4 caractères, dans le
deuxième 5*5 et dans le troisième 6*6.
Chaque niveau comporte quatre
tableaux dont 2 avec une suite de mots
et 2 avec une image. Cela fait en tout
six images :
• niveau 1 : un homme à lunettes un
peu chauve et un homme sans lu-
nettes.
• niveau 2 : un éléphant d'Asie et un
avion au-dessus des montagnes.
• niveau 3 : un hippocampe et un
panda géant.
Toutes les informations, sur le compte
des points et sur les deux commandes
possibles pendant le jeu (Loupe et
Vérification), vous seront données
dans les instructions du programme.
DETAILS TECHNIQUES
Ce programme comporte deux
routines en langage machine :
— La première sert à lire un caractère
à la position actuelle du curseur texte,
et peut être réutilisée dans un de vos
programmes en changeant simplement
(si besoin est) l'adresse dans : LD
( # 8007),A (C'est l'adresse où va être
sauvé le code ASCII du caractère lu).
La routine se lance par un CALL
&8000.
Ex. : Pour lire le caractère en bas à
droite, faire LOCALE 40,25:CALL
&8000:PRINT PEEK(&8007)
— La deuxième routine, quant à elle,
est plus complexe, et fonctionne
uniquement en MODE 1 : elle sert à
agrandir les images et se lance par un
CALL &8020.
• Pour la reloger, il ne faudra pas
oublier de changer les adresses
définies, au début du listing 1
assembleur, par l'instruction EQU.
• Pour l'utiliser, il faudra poker les
valeurs suivantes :
En &8010 : le poids faible de la
coordonnée X de Limage agrandie.
En &8011 : son poids fort.
En &8012 : la même valeur qu'en
&8010.
En &8013
&8011.
En &8014 : le poids faible de la
coordonnée Y de l'image agrandie.
En &8015 : son poids fort.
En &8016 : la longueur en nombre de
points (1 caractère = 8 points)
En &80I7 : la largeur en nombre de
points.
En &802A : le poids faible de la
coordonnée X de l'image à agrandir
En &802B : son poids fort
(initialement X = 0).
En &802D : le poids faible de la
coordonnée Y de l'image à agrandir
En &802E : son poids fort
(initialement Y = 399).
En &8039 : l'INK du papier à
l'endroit où est imprimée l'image
agrandie : (mettre 4 ou plus si le
papier n'est pas uni ou s'il est généré
aléatoirement sinon il apparaîtra à la
place d'une des couleurs de l'image
agrandie). L'INK est initialement à 0..
En &8095 : la même valeur qu'en
&802A
En &8096 : la même valeur qu'en
&802B
EXEMPLE
Imaginons que vous vouliez agrandir
le mot POUSSE-POUSSE situé en
haut à gauche de l'écran X = 0,
Y = 399 ( = &18F) pour l'afficher aux
coordonnées X = 96( = &60), Y = 367
( = &16f). Le fond étant en INK 0. Il
faudra faire :
POKE &8010,&60:POKE &8011.0
Pour la coordonnée X
POKE &8012,&60:POKE &8013.0
Pour la coordonnée X
POKE &8014,&6F:POKE &8015.1
Pour la coordonnée Y
POKE &8016,120
Longueur = 15 caractères * 8
points/car. = 120
POKE &8017,8
Largeur = 1 caractère * 8 = 8
CALL &8020
Lance la routine
Les autres valeurs (position du mot
POUSSE-POUSSE, INK du fond)
étant les mêmes que celles initialement
prévues, il n'est pas nécessaire de les
poker.
la même valeur qu'en
w i '♦*#*******■*****##*#**+***
2
■"***
D.Paven
***
3
'***
*#*
4
■***
présente
*##
5
'«*»
***
6
'***
POUSSE-POUSSE
***
? '*********#*#*#***#**»*♦**
8 '
50 SYMBOL AFTER 126
m MEMORY i7FFF:G0SUB 980:GQSUB 157
0:LOCATE 12,12:PRINT"INSTRUCTI0N (0
/N)":CALL 4B803
78 Rt=UPPER$(INKEY*>:IF R*="" OR R*
©"0" AND R*0"N" THEN 70 ELSE IF R
$="0" THEN G0SUB 182»
BU MODE ltPRINT CHR*(10)+"-Veuillej
entrer votre non»(î2 caracteresau ta
Miail) : ":PRINT:CALL MB03:PRINT"~
— >";:NQM*="":N*=""
90 N$=INKEY$:IF N*=" THEN 90
100 IF ASC!NJ)=127 AND N0M*O"" THE
N PRINT CHRM8I+" "+CHR*(B);:N0M*=L
EFTtiN0M»,LEN(N0M$!-l):G0T0 90
110 IF ASC(N*)=127 AND N0MJ="" THEN
PRINT CHR*(7I;:60T0 90
120 IF ASC(N$K>13 THEN N0M*4O1*+N
«:GOT0 130:PRINT N*i ELSE 140 /
>EF
130 IF LEN(N0M*)>12 THEN PRINT CHR*
(7) i :NQM«=LEFT*(N0M$,LEN(N0M»>-1) :G
0T0 90 ELSE PRINT N*;:G0T0 90
140 CLS:N0M*=UPPER*(NQM»):NûMl*= i, Bi
erwenue "+NDM»:X*INT((40-LEN(NDM!*)
i/2!:L0CATE X,12:PRINT N0M1*;F0R A=
1 TO 3000: NEXT A
145 IF 6RIUE>=3 THEN CHAINE*'" ":F0
R A=l T0 FIN'"2-1:P£AD CH:CHAINE*=CH
AINE*+CHR*(CHI:NEXT ArGOSUB 1190:60
SUB 710:GOTO 160
150 CHAINE$="":F0R A=l TO FIN:READ
LI*(A):CHAINE*=CHAINE*+LI*(A):NEXT
fl:60SUB 1190:GOSUB 710
140 FOR A=l TO LEN(CHAINE$):Ct=MID$
(CHAINERA, 1)
170 X=INT(RND*FIN)+1:Y=INT(RND»FIN)
tliIF X=FIN AND Y=FIN THEN 170 ELSE
L0CATE X, Y: CALL »00
180 IF PEEK(&8907>»32 THEN PRINT C*
;:NEXT A ELSE 170
190 X=FIN:Y=FIN:INK 1,24:11* 2,26:1
NK 3,0:CLS #1
200 PRINT CHR*(7);:EVERY 50,3 BOSUB
740
210 R»=INKEY*:IF Rt="" THEN 210
>RU
>ZY
>TM
>QC
>FN
>xz
//
—
22» IF R*=CHR*!241) THEN Y=Y-1:B0SU
B 550 ELSE 258
239 IF DEPLACE=1 THEN SOSUB 378 ELS
E Y=Y+1
248 GOTO 218
258 IF R*=CHR*(248) THEN Y=Y+l:GOSU
B 558 ELSE 288
268 IF DEPLACEE THEN GOSUB 418 ELS
E Y=Y-1
278 SOTO 218
288 IF R$=CHR»(242) THEN X=X+1:BÛSU
B 558 ELSE 318
298 IF DEPLACE»} THEN 60SUB 458 ELS
E M-l
388 80T0 218
318 IF Rt=CHR$<243) THEN X=X-l:GOSU
B 558 ELSE 348
328 IF DEPLACEE THEN 60SLIB 498 ELS
E X=X+1
338 GOTO 218
>YF
348 IF UPPER*<R*)="V" THEN GOSUB 58
)CH
8
358 IF UPPER*(R*!="L" THEN GOSUB 15
:>DM
80
368 SOTO 218
ïYJ
378 '*** BAS ***
>TA
380 GOSUB 538
ïHJ
398 LOCATE X,Y:PRINT " "::LOCATE X,
>CT
Y+1:PRINT CHR$(CHARi|
488 RETURN
>YK
410 '*** HAUT *»»
>RF
428 GOSUB 538
>HD
438 LOCATE X,Y:PRINT " ";:LOCATE X,
>CP
Y-liPRINT CHR*(CHAR>;
448 RETURN
>ZD
450 '*** GAUCHE ***
>RK
460 GOSUB 530
>HH
478 LOCATE X,Y:PRINT " ";:L0CATE X-
>CU
l,Y;PfiINT CHR*(CHARl!
488 RETURN
>ZH
498 '**« DROITE m
>TD
508 GOSUB 538
>HC
518 LOCATE X,Y:PRINT " "::LOCATE X+
>CL
1,Y:PRINT CHRi(CHAR);
520 RETURN
>zc
538 '*** PREND CARACTERE M*
>RJ
548 LOCATE X,Y:CALL 48000: CHAR=PEEK >VA
<M887):RETURN
550 'm DEPLACEMENT VALIDE 7 ***
>TA
560 BI: IF X<1 OR X)FIN OR Y<1 OR Y>
>TW
FIN THEN LOCATE t3,9,l:PRINT #3,CHR
J(7!+CHR*(24>+" Déplacement INTERDI
T "+CHR$(24) : : DEPLACEE: El : RETURN
578 LOCATE #3,9,1:PRINT#3,M»(24! +
>RS
" DepUcenent correct. "+CHR*<24>;:
DEPLACE» 1 : CÛMPTEUR=C0MPTEUR+ 1 : ROI NT
=P0 1 NT- 1: LOCATE K,1,2:PRINT#2,C0MP
TEUR:EI:RETURN
580 '*** VERIFICATION ***
590 LI6NE*="":LI*(FIN>=LI»(FIN>+" "
:FOR B=l TO FIN:FOR A=l TO FINïPOKE
48884, !<6+A:L0CATE A,B;PEN 3:CALL b
8880:NEXT A
600 FOR C=&8807 TO 1B087+(FIN-1):LI
GNE$=LISNE*+CHR*(PEEK(C)):NEXT C
610 IF LI$(B)=U6NE$ THEN LIGNE*=""
:NEXT B;POKE lBl»4,t?:LIi(FINI=LEFT
*(LI*(FIN),FIN-1! ELSE POKE 48004,1
?:LIt(FINI=LEFTtiLI$(FIN),FIN-ll:SO
TO 660
620 LÛCATEtl ,8,1: PEN#1 , 0:PRINT« , RE
«AlNI3!s:SCORE=SCORE+PDINT-(M*t0l:P
EN #1,1:L0CATE#1,1,7:FRINT#1,CHR*<2
4"!+" BRAVO "+CHR$(24)+", "+N0MS+" <
!":PRINT#l,"Vous avez réussi a refo
ruer le tableau. ":N1=3:N2=5:ATT=588
8:60SUB 1650:6OSUB 680
638 CHQIX*=INKEY*;IF CHOIX*="" THEN
630
640 IF CH0IX*="1" AND GRILLE=4 AND
NIVEAU=3 THEN GOTO 1250 ELSE IF CHO
IX$="1" AND GRILLE=4 THEN NIVEAU=NI
VEAU+l:GRILLE=l:FIN=FINtl:GOSUB 157
9:G0SUB 690:GOTO 145 ELSE IF CHOIX*
="1" THEN GRILLE=BRILLE+1:80SUB 690
iGOTO 145
650 IF CHÔIX*="2" THEN GOSUB 980:80
SUB 157ê:G0T0 80 ELSE IF CHQIX*="3'
THEN GOTO 1758 ELSE 630
660 PEN t 1,1: LOCATE tl,l,7:PRINT #1
,"Vous n'avez pas de chance, ce n'es
t pas cela.":60SUB 1700:SOSUB 680
670 CHOIX*=INKEYÏ:IF CHOIX*=" THEN
670 ELSE IF CH0IX*="1" THEN CLS tl
:RETURN ELSE IF CHDIX*="2" THEN LOC
ATE#1,B,1:PEN*1,0:PRINT#1,RE«AIN(3)
;:80SUB 980:GOSUB 1570:6OTO 80 ELSE
IF CH0IX»="3" THEN 60T0 1750 ELSE
670
680 PRINTtl : PRINT#1 , "Voulez-vous: " :
PRINT#1 : PRINT#1 , " 1 ) Continuer" : PRIN
T#l,"2) Reco«siencer":PRINT#l,"3) Ar
reter": RETURN
690 '*** INITIALISATION 1 ***
788 MODE 1:INK 1,1:INK 2,1:INK 3,1:
HINDOU #0,41-FIN,40,1,FIN:PAPER 2:P
EN 3:CLS:WND0« #1,1,40,7,23:WNDOW
#2, 1,34, l,6:UIND0tf #3, 1,40,24, 25:R
ETURN
710 '♦*« INITIALISATION 2 »**
728 CLS; CLS#1:CLS#2: LOCATE #2, 1,1:P
RINT#2,CHR$(24!+"C0UPS:"+CHR*(24):P
RINT#2," 8":PRINT #2,CHRI(24)+"TEMP
5:"+CHR*(24);PRINT*2," 0: 8":P0INT=
1088:S=0:M=8:COMPTEUR=0
. 738 RETURN
748 '*** ECOULEMENT TEMPS *»* >TB
750 S=S+1:IF S=60 THEN S=0:M=K+1 >ZG
760 LOCATE »2,1,4:PRINT #2,USING "# >AD
t";M;:PRINT I2,":"::PRINT #2,USINS
"#t";S;:IF «=30 THEN RUN
778 RETURN >ZK
788 '*** DATA ROUTINE MACHINE *** >TF
798 DATA CD,60,BB,32,7,B0,C9 >VG
B88 DATA 3A, 17, 88,47, 3A,16,88,C5,F5 >AC
,11,0, 8,21, BF,1,D5,E5, El, Di,D5,E5,C
D, F8,B8,FE, 0,28,31, CD, DE, BB,ED,5B,1
0,80,2A,14,80,CD,C0,BB,1 1,8,8,21,0,
0,CD,ED,BB, 11, 2,0,21, 0,0, CD, ED.BB,
11,0, 0,21, FE,FF,CD,ED,BB, 11, FE,FF,2
1,0,0,CD,ED,BB,ED,5B,10,80,13,13,13
,13
818 DATA ED,53,10,88,E1,D1,F1,C1,FE >YM
,1,28,9,3D,C5,F5,13,13,D5,E5,1B,A7,
78,FE,1,CB,5,C5,3A,16,80,F5,11,0,0,
D5,2B,2B,E5,ED,5B,12,S0,ED,53,10,B0
,2A, 14,80,26, 2B,2B,2B,22, 14, 80, 18,8
2,0
838 '*** DATA POUSSE-POUSSE 4*4 *** >TB
B40 DATA BUSE, SRUE, IBIS,OIE >XR
850 DATA LOIR,MARA,PIKA,RAT >XP
860 DATA 127,128,129,138,131,132,13 >LK
3, 134, 135, 136, 137, 138, 139, 148, 141
870 DATA 143,144,145,146,147,148,14 >«D
9, 150, 151, 152, 153, 154, 155, 156, 157
888 '*** DATA ROUSSE-POUSSE 5*5 **» >TS
890 DATA AR60N,AZOTE,ETAIN,PLOMB,21 >JD
NC
908 DATA CY6NE,HER0N,HIB0U,PQULE.RA >3»
LE
910 DATA 127,128,129,130,131,132,13 >PB
3, 134, 135, 136, 137, 138, 139, 140, 141, 1 /
42, 143, 144, 145, 146, 147, 148, 149, 150
928 DATA 152,153,154,155,156,157,15 ;QZ
B, 159, 168, 161 , 162, 163, 164, 165, 166, 1
67, 168, 169, 178, 171, 172, 173, 174, 175
930 '*** DATA POUSSE-POUSSE 6*6 *** >TC
940 DATA CHLORE, CUIVRE, NICKEL, SOUFR >Z6
E, TITANE, XENON
950 DATA COFFRE, DI0B0N,BARD0N,60UJ0 >Z8
N, SAUMON, TETRA
968 DATA 127,128,129,138,131,132,13 >ZA
3, 134, 135, 136, 137, 138, 139, 148, 141, 1
42, 143, 144, 145, 146, 147, 148, 149, 158,
151 , 152, 153, 154, 155, 156, 157, 158, 159
,160,161
970 DATA 163,164,165,166,167,168,16 >AE
9, 170, 171, 172, 173, 174, 175, 176, 177, 1
78, 179, 180, 181, 182, 183, 184, 185, 186,
187,188,189,190,191,192,193,194,195
,,196,197
r32>
;
//
98e '*** HISE A ZERO ***
990 RESTQRE 790: FUR A*&B000 TO mm :
6:READ Vt:V=VAL("& n +V$):POKE A*V;NE
XT:F0R A=&802& TQ &B0AFiREAD V$:V=V
ftU n &*+V$):P0KE A,v';NEXT:POKE &8010
,80iPQKE &8011,0îPOKE &B012,80iPÛKE
feS013,0:PQKE &B0i4,46FiPQKE &8015,
liPQKE &80ii,i2e:P0KE &B017,16iPÛKE
£8039,0
1000 RESTORE 84y : RAND0HIZE ÎÏHEîFIN .
=4:NiyEAU=i:6RILLE=i:H0DE 1:CALL &B
C02:PEN 1: PAPER
101Ô RETURN
102O '*** PRESENTATION *** '.
1030 MODE Iï INK l.lîPEN IsPRINT" PO :
USSE-PQUSSE "rPRINT"
fl :CALL &8020:LOCATE 1,25;PRINT:PRIN
T:PRINT:LQCATE l,4ïINK 1*24
1040 LQCATE 12,5:PRINT"{Par David P :
AVEN)":«INDQM #1, 1*4», 1, SïMINDOW 1,
40,6,25
1050 LOCATE i,2:PRINT B -PQUSSE-PQU5S :
E est un jeu ou vous devez reforme
r des mots puis des .images en ut
îiisant les flèches corae suit:";PR :
INT TAB(2;,CHR$!241i+":DepUce ver
s le bas le caractère situe 3
u dessus du carre vide, "
1060 PRINT TAB(2i,CHR$(240)+":Depla
ce vers le haut le caractère
situe au dessous du càrrs vide,":PR
INT TAB(2!,CHR*i243)+":Deplace ver
s la droite le caractère situe a
gauche du carre vide."
1070 PRINT TABt2),CHR*<242)+":Depla
ce vers la gauche le caractère
situe a droite du ckrre vide. U ;GÛSU
B 1170
1080 CLSiLQCATÉ i,2:PRINT"-Il y a
trois niveaux differénts:Dans le
premier niveau, les tableaux mesuren
t 4*4 caractères, dans le deuxième
5*5 et dans le troisième 6*6. rt :LÛCÀ
TE i,7:PRINT"-Chaque niveau compor
te 4 tabIeaux:Dans les 2 premiers v
ous devez"
1090 PRINT CHR$(il)+STRIN6$(2o,CHR$ :
(9))+" reconstituer des mots et
dans les 2 suivants vous devez réc
onstituer des images. "rLOCATE 1,12:
PRINT"-Au début de chaque tableau. 1
ordinateur vous donne 1000 points
,mais il vous en";
1160 PRÏNT ■ enlevé 20 toutes le ;
s minutes et 1 a chaque déplace
ment (c'est largement suffisant!. A
prçs chaque tableau votre AMSTRAD
ajoute ce qui reste de ces pa
ints 3 ceux qui ont ete précéderas
rît obtenus (enfin espérons !!)."
1110 GQSUB H 70
1120 CLSiLQCATE 1,2:PRINT"-Quand v
ous pensez avoir entièrement ret
onstitue un tableau verifiez-le e
n appuyant sur 'V , votre AMSTRA
D vous dira alors si c'est correct
ou non, Dans";
1130 PRINT" les deux cas vous aure
: alors le choix entre: ":PRÏNT,"
-l:Contmuer:Soit vous poursuive:
la reconstitution du tableau soi
t vous passez au tableau suivant."
(j£ft?0SS6>
i i 40 PRINT," -2:Recom»encer;Vous
rejoue: depuis le début. "SPRINT, "
-3:Arreter:A n'utiliser qu'au bord
de la dépression nerveuse. ":S0SUB
1179
1158 CLS:LOCATE l,2;PRINT"-Pour vo
us aider a reconstituer les ima
ges.une fonction loupe est prévue
; En appuyant sur 1 une image deu
x fois plus grosse apparaîtra. Elle
sera munie d'un cadrillage qui
vous sera très utile."
1140 LOCATE 9,11:PRINT"ET MAINTENAN
T ALLONS-Y !!":60SUB il70:RETURN
1178 LOCATE 9,29:PRINT CHR*(24!+" A
ppuyer sur une touche "+CHRK24!
1188 CALL MB93:CALL iBB06: RETURN
1198 '*** 6RILLE A RECONSTITUER ***
1288 SOSUB 6W:X=l:V=i:FQR A=l TO L >0J.
EN (CHAINE* > : Ct=MID$ (CHAINES, A, i ï
1218 LOCATE X,Y:PRINT C*;:X=X+1:IF >BC
DFIN THEN X=liY=Y+l
1229 NEXT >K6
1230 INK i,24:INK 2,26: INK 3,0:CLS# >DT/
2:CLS*1:PEN t2,l:PRINT#2,CHR*!24)+" /
Votre score:"+CHR$(2«:PRINT#2,SC0R
E:PEN #1,1:L0CATE 11,1, 1:PRINT#1, "-
Observe: bien ces deux représentât
ions avant de continuer. ";:PEN #2,1
iLOCATE #2, 19, 1:PRINT*2, "Tableau nb
rmal:";
1248 GOSUB 1588:INI( 1,1:INK 2,1:INK HZ
3, 1 : CLS : CLS#1 : CLS#2 : CLS#3: RETURN
1258 '»** GAGNE *** >Yft
1268 PRINT#3,REHAIN<3)iH0DE iiPAPER ;« I
0îPEN kLOCATE l,2:PRINT"-BRAV0,vo /
us ete un champion "+NÛM$+":":N1=1:
N2=i5:ASS=7209;6OSUB 1650:PRINT:PRI
NT" vous ave: réussi a reconstituer
les 12 représentations. ":PRINT
1278 PRINT" Il ne vous reste qu un >UA ,
e chose a faire, c'est d'améliorer
votre score: ";SCORE:PRINT:PRINT"V
oulez-vous 1) Arrêter ou 2? recomme
ncer":CALL 46B03
1288 Rt=INKE¥*:IF R*="" OR (R$0"1" >ËF
ANO R*<>"2") THEN 1288 EL5E IF R*=
"1" THEN 1758 ELBE BOSUB 9B0:GOSUB
1578: GOTO 88
1298 '*«» REDEFINITION DE CARACTERE >YE
S *##
1390 '*«* HOME A LUNETTE SANS CHEV »ffi
EU); ***
1318 DATA 8,8,9,8,1,3,3,6,0,63,64,1 M ,
28,128,0,0,9,0,248,4,2,1,8,8,9,8,8, /
0,0,128,192,224,96, 6,14,14,14,14,9
,9,9,0,0,0,30,63,94,78,66,9,9,0,15,
31,238,229,161,112,112,112,112,240,
224,80,80,9,6,6,2,1,0,0,1,68,33,39
1329 BATA 9,9,131,196,193,162,31,0, >NÙ
224, 0, 240, 8, 225, 80, 160, 64, 64, 64, 64,
128,0,3,7,11,19,99,129,1,1,224,112,
56,28,15,135,128,128, 2,2,5,9,241,2
41,1,1,0,0,9,128,64,48,12,2
1338 '»** HOMME SANS LUNETTE AVEC D >XK
ES CHEVEUX *♦*
1349 DATA 0,0,1,3,7,"15,15,15,63,127 >FL
,255,255,255,255,255,255,249,248,25 (=
2,254,255,255,255, 255,9,0,9,0,0,1 z
28,128,192,31,31,31,15,15,31,31,15, 3
255,255,240,128,0,9,0,248,199,7,7,7 "î
,27,97,129,176,224,224,224,224,224, |
224,224,224,15,15,15,7,3,3,1,0,180, S
52,4,4,4 1
1359 DATA 132,131,128,48,9,0,32,16, >BE .2
136,0,0,144,144,144,160,160,64,64,1 |
28,9,0,0,9,0,0,3,15,71,34,35,17,24, J
fl^vv 1 **
252, 254,255,241, 33,227, 195,7, 15.31, '
255,6,8,6,8,0,0,0,6,8
1366 '*»* ELEPHANT D'ASIE SE PROHEN >ÏC
ANT **»
137B BATA 6,8,8,8,1,6,4,5,6,6,6,0,2 >NF
55,92, 118,97,8,9,0,31,224, 128, 128,2
24,9,9,224,28,3,9,9,9,8,9,6,9,8,192
,48,24,8,24,19,19,16,16,16,32,299,1
2, 9, 1 , 79, 183, 127,255, 160, 194, 194,28
2,291,145,144,144,8,8,9,8,8,1,194,9
,12,14,42,79,79,134,6,6,39,46,124,5
2,36,36,36
1389 DATA 36,63,15,3,3,7,6,14,14,12 >FN
,75, 132, 167, 63, 15, 56, 16,8, 1,2, 4, 196
,252.62,31.6,6.18.15,15.15,22,8.52,
28, 1», 15,7,56, 127,255, 15, 14, 14,287,
286,222,63,254,16,168,96,168,39,63,
31,159,31,31,15,15,15,255,255,255,2
32, 152, 164, 196, 136,28», 168, 249,255,
255, 127
1398 DATA 127,63,15,8,8,255,255,255 >BD
,255, 255, 255, 8,8, 255, 255, 255, 255, 25 .
5,255, 8, 9,255, 255,254,254, 252,248,9 '
,8,8,8,9,9,8,9,9,9,8
1488 '♦** AVION SURVOLANT DES MONTA >XH
GNES ♦♦*
1418 DATA 8,8, 8,8,8,8,8,9, 9,8,9,8,9 >ML
,8,9,9,9,8,9,9,8,8,1,7,8,9,8,9.48,2
49,224,192,9,9,8,6,9,9,9,224,9,9,9,
8,15,31,15,6,9,9,9,7,255,255,255,3,
127,63,126,252,255,255,255,248,128,
1,3,7,255,255,252,8,224,224,248.246
,224,224,96,8,8,9,6,6,8,9,8,8,1,7,8
,8,6,8,8,6
1428 DATA 248,252,62,247,3,6,9,9,8, >HM
6,8,8,6,8,8,6,9,8,8,6,6,9,8,6,9,9,8
,6,8,9,9,9,8,8,9,9,8,6,6,9,6,6,9,9,
9,9,9,3,6,9,6,6,6,8,8,128,8,6,6,8,8
,8,8,9,9,9,9,8,9,6,15,21,9,6,31,53,
196,213,235,215,126,213,179,85,171,
215,175,223,224,88,174,87,179,213,1
71,87,9,7
1439 DATA 26,245,171,87,176,213 >XJ
1448 '«** HIPPOCAMPE (CHEVAL DE MER.XYB
) ***
1458 DATA 6,8,8,6,8,6,6,8,6,6,6,12, >NF
11,24,15,8,5,13,54,56,217,1,242,29,
48,246,264,178,156,188,47,198,6,8,9
,9,9,9,8,64,8,9,9,9,8,8,8,8,68,68,1
24,68,68,8,16,16,8,8,6,8,9,1,2,2,7,
3,29,119,149,82,41,165,31,228,183,7
4,253,158,288,96,128,6,128,8,6,6,6,
6,62,32,32
1466 DATA 32,62,9,62,34,16,16,16,9, >LU
124,68, 124,64,6,5, 4,7, 5,5,3,3, B7, 29
, 193, 153, 223, 177, 297, 185, 255, 126, 25
4, 254, 252, 252, 252, 248, 8, 6, 8, 8, 6, 6, 8
, 0, 62, 34,34, 6, 34, 54, 42, 34, 64, 8, 124,
68,124,64,64,8,2,3,3,7,3,1,6,6,239,
73,247,164,159,139,133,2,248,126,24
8,176,144
1478 DATA 128,96,168,8,8,8,8,8,8,6, >HU
8,34,8,62,34,62,32,32,8,124,68,68,
68, 124, 8, 6, 8, 6, 8, 6, 6, 6, 8, 6, 8, 1 , 8, 6,
8,8,6,6,9,89,248,88,194,52,68,36,28
,8,8,6,8, 6,8,8,6,62,32,66,32,62,6,
8,6,8,6,6,8,8,8,8,8,8,8,6,6,6,6,8,6
,7,15,13,11,5,7,8,6,148,156,52,232,
68,224,6,8
1489 DATA 6,8,8,8,8,6,8,8,6,8,8,8,8 >GR
,8,6,6,6
1496 'H* PANDA GEANT: SYMBOLE DE SA >¥G
UVEGARDE ***
1566 DATA 8,65,65,65,65,125,9,6,6,2 >K6
48,8,224,6,246,9,6,6,62,34,62,32,32
,6,1,8,256,139,258,138,138,8,128,6,
47,46,168,164,47,8,6,6,62,162,198,1
62,34,9,8,6,6,8,8,8,8,9,9,8,9,9,8,1
,2,4,8,3,3,31,110,152,56,112,224,19
2,192,254,3,1,9,9,8,6,8,6,224,246.2
46,224,64
1516 DATA 8,8,6,8,8,6,6,6,9,0,0,6,9 >LA
,6,8,6,8. 16, 16, 16,17, 17, 19,27,224,2
25, 227, 243, 251 , 252, 254, 255, 6, 192, 78
,266,16,14,182,145,64,32,32,32,48,1
12,248,248,6,6,6,6,6,8,6,6,8,6,6,6,
8, 6, 6, 8, 63, 63, 63, 63, 63, 62, 62, 28, 255
,255,255,255,255,255,255,127,255,25
5,255,129
1526 DATA 129,131,227,247,248,248,2 >NN
48,248,248,248,248,248,6,6,6,8,6,6,
8,8,8,8,6,8,6,8,8,8,6,8,8,6,8,6,0,6
,63,31,7,8,148,156,149,148,247,243,
224,0,128,128,128,128,224,192,6,0,6
,0,0,0,6,8,6,6,6,0,8,6,8,6,61,32,66
,4,66,8,0,6,26,166,69,68,68,6,244,6
,92,216,94
1536 DATA 82,92,6,128,0,244,148,148 JH
,148,247,0,8,6,66,32,56,32,188,6.0,
0,8,0,8,8,8,8,8
1546 RESTORE 1316:SY=127:F0R IM=1 T >MB
2: FOR N=l TO 128 STEP BlREAD A,B,
C,D,E,F,E,H:S¥HBOL SY,A,B,C,D,E,F,B
,H:SY=SY+1:NEXT N:RESTORE 1348-.NEXT
IM:RESTORE 836:RETURN
1556 RESTDRE 1376; SY=127: FOR IM=1 T )MD
2iF0R N=l TO 286 STEP 8:READ A,B,
C,D,E,F,G,H:SYMBOL 3Y,A,B,C,B,E,F,6
,H;SY=SY+1:NEXT N:RESTORE 1418:NEXT
IM:RESTOR£ 898:RETURN
1568 RESTORE 1456:SY=127;F0R Itt=l T >MZ
2:F0R N=l TO 289 STEP 8:READ A,B,
C,D,E,F,S,H:SYMBOL S¥,A,B,C,D,E,F,S
,H:SY=SY+1:NEXT N;RESTORE 1596:NEXT
IMiRESTORE 948:RETURN
À1576 ON FIN-3 BOSUB 1548, 1556, 1566: /JN
RETURN
1586 »** LQUPE ***
1598 POKE 18010, (638-FIN*32)/2:P0KE
5,8011, 0:POKE 48812, (638-FIN»32)/2;
POKE Î<8613,6:P0KE 48014,4FE:F«E 48
815,6:P0KE 48616,FIN»8:PÛKE 48617, F
IN*8:P0KE 4S82D,4BE:P0KE 4S62E,i:P0
KE 4862A,448-(16«<FIN-4i>:P0KE 4862
B,2:P0KE 48639,2
1686 POKE 48695. 446-ll6*(FIN-4! ): PO
KE 48696,2
1616 HINDOU I4,28-FIN-H,26+FIN,16,9
+FIN*2: PAPER M,2:CLS#4:CALL 48026
1620 C=(638-FIN*32!/2:FÛR A=0 TO 32
♦FIN STEP 32:M0VE C+A,254:DRAHR 8,-
FIN*32,3:M0VE C,254-A:DRANR FIN*32,
6:NEXT A
1638 LOCATE #1,Î,4:PEN tl,l:FRÎNT»i
,"îableau":PRINT#l, "agrandi: ":UKBT
E #3,2,1:PRINT#3,CHR*I24)+" Appuyer
sur une touche pour continuer "+CH
R*I24):CALL 4BB03
1640 R*=INKEY$:IF R$="" THEN 1640 E
LSE WNDOW #1,1, 40,7, 23:CLS#1:CLS#3
: RETURN
1650 '*** APPLAUDISSEMENTS NOURRIS
*#*
1660 FOR I=N1 TO N2
1676 SOUND 5,3,268,15-1,6,8,31
1686 NEXT:FQR N=l TO ATT:NEXT N
1696 RETURN
1786 '«* PERDU ***
1718 ENV 1,15,-1,16
1726 ENT -1,18,4,1,1,-26,1
1736 SOUND 2,868,8,15,1,1
1748 RETURN
1758 '*«* FIN »*♦
1760 PRINT CHRtl7);:PRINT#3,REMAINl
3>:M0DE 1:PAPER 0:PEN 1:L0CATE 13,1
UPRINT CHR$(24)+STRIN6$(14," "!+CH
R»(24):L0CATE 13,12:PRINT CHRS1241+
" Au revoir M "+CHR$< 24): LOCATE 13
,13:PRINT CHR*(24>+STRINB»(14," ")+
CHR*i24i+STRIN6t(10,CHR$(18l):RESTO
RE 1886
1765 FOR ATT=1 TO 1860;NEXT ATT
1776 READ PERIODE, DUREE
1780 IF PERIODEO-1 THEN SOUND 1,PE
RIODE, DUREE: SOUND 2, PERIODE+2, DUREE
: SOUND 4,PERI0DE+2,T)UREE ELSE END
1796 BOTO 1770
1806 DATA 638,60,478,85,6,5,478,25,
8,5,478,68,379,68,426,96,478,36,426
,66,379,69,478,85,6,5,478,36,379,68
,319,68,284,175,6,5,284,66,319,96,3
79, 25, 6, 5, 379,66, 478, 68, 426, 96, 478,
36,426,68,379,68,478,90,568,25,8,5,
568,60,638,60,478, 120, -!,-!•
;ML
>WK
>ZT
>FK
,>ïA
>LR
>RY
>RG
)FF
>YF
>UT
>YD
>TX
)ZH
>NK
?JV
SE DETENDRE ET S'INSTRUIRE
PAR LA LECTURE
:
' r R
M
t%
^ ««:
Bii Mk
AMSTAR
Mensuel informatique
vendu en kiosque et
par abonnement,
Présentation de jeux
et nouveautés sur Amstrad .
Tous les mois un concours I
CPC
ARCADES
jqrcacleSj*
Mensuel informatique et
communication vendu en
fdjERr-v-
kiosque et par
4i r ,: **"'
abonnement,
■rir '
Présentation de jeux.
Ki J g* < '>if.;'-
nouveautés, sur toutes
h$m>
machines, consoles de
Jeux et minitel. Concours
mensuel permanent.
Mensuel informatique
dédié aux ordinateurs
Amstrad
MEGAHERTZ
MAGAZINE
Mensuel de
communication amateur
actualités. Informatique
technique.
VIVEZ LA MICRO EN FAMILLE
Toutes nos revues
sont vendues en kiosque.
Istrc
ilimir
mwc-MocKy.
lAfffl/STW!
Dossier:
m m
'■'• r -''-' : -'-""--"- ;
CPCHS
Numéro hors-série
comprenant uniquement
des listings sur Amstrad .
Paraît tous les deux mois.
PCOMPATIBLES
MAGAZINE
Mensuel informatique
consacré aux ordinateurs
compatibles. Actualité,
technique, listing.
ASTROLOGIE
PRATIQUE
Mensuel d'astrologie (et
non de voyance). Outre
l'information, les thèmes
développés touchent à
la pratique sérieuse de
I astrologie.
Si vous souhaitez recevoir un exemplaire de presse, envoyez 20 F en timbre ou chèque à :
Editions SORACOM- La Haie de Pan- 35170 BRUZ.
G
N
E
Z
D
U
T
E
M
P
S
PROFITEZ DES PRIX BRETAGNE EDIT'PRESSE
BOITES DE
RANGEMENT
MEDIA BOX
POSSO
Pour 40
à 150 disquettes
1 3", 3" 1/4, 3" 1/2
nsf
DISQUETTES, «•» ,
Recommandé facultatif
3" par Boîte 7 F en plus
COMPACT
DISC
Pour 13 compact
dises
Port 25 F
Recommandé facultatif
par Botte 7 F en plus
Pour
16 minicassettes
95F
CASSETTES, «?,,,,
Recommandé facultatif
AUDIO p" B ° ite 7 F en p |us
/42F
VIDEO
Pour 9 cassettes
vidéo VHS, V20Q0
Beta
Port 25 F
Recommandé facultatif
par Boîte 7 F en plus
Pour 50
à 70 disquettes
/75F
DISQUETTES pm25F
rtt m m Recommandé facultatif
ÎJ 1/4 P ar Bo ' ,e ? f 5n nlus
c
L
A
S
S
E
Z
E
T
P
R
O
T
E
G
E
Z
^J
• Boîte DATA Case 5"1/4 (50 disk)
10 disquettes D F D D 5"1/4
Votre petit cadeau surprise gratuit
d'une valeur de 50 F
120 F
+
Port et emballage 25 F
Total Lot 145 F
• 1 Boîte DATA Case 3"1/2 (40 disk)
10disquettesDFDD3"1£
Votre petit cadeau surprise
d'une valeur de 50 F
260 F
+
Port et emballage 25 F
Total Lot 285 F
• 1 Boîte DATA Case 3" (20 disk)
10 disquettes MAXELL D F D D 3"
Votre petit cadeau surprise
d'une valeur de 50 F
340F
+
Port et emballage 25 F
Total Lot 365 F
• Boîte DATA Case seule
3" 3"1/2 5"1/4
85F+15FPort
et emballage
Désignation
BON DE COMMANDE
A adresser à BRETAGNE EDir PRESSE - La Haie de par, - 351 70 BRUZ - Tel. 99.57.90.37
Réf. Qté Prix unit Montant (écrire en majuscules)
Forfait de port + emballage
Recommandé (facultatif)
25 F
10 F
NOM.
Code postal .
.Ville.
TILITAIRES
ol
Q-
co 1
rr
n a
j U_ .,;
n 1
ol
Q — JS
cn=^"
"•*
=.~ 1
ol
- ■ '■ ol
coB^^B
— --— o 1
Ua- i
— i 1 ^ 1
■"^ —M
co =
-ni
CNt:
^'1
2^^
1 '" o 1
I
SOMMAIRE
TT
Photo de couverture : Patrick LOPEZ
ANTI-ERREURS
3
MUSIQUES
9
PRET
RESISTOR
DIVISION
22
LE PETIT TRAIN
MAGNETIC
POUSSE-POUSSE
30
A L'ATTENTION
DE NOS LECTEURS
MOTS CROISES
RELIEFS MATHEMATIQUES
Ce numéro de CPC est un hors-série ne com-
portant que des listings. Il paraît tous les deux
mois dans les kiosques et il est offert aux abon-
nés. Ne confondez pas avec le CPC mensuel !
CPC est une publication du
groupe de presse FAUREZ-
MELLET
Directeur de publication
SylvioFAUREZ
Rédacteur en chef
Olivier SAOIiTTI
Rédaction
'Catherine VIARD
Correspondants
Marseille : Karine ELGHOZI
Paris : Anne-Marie THOMAZEAU
Secrétaire de rédaction
Florence MELLET
Rewriter
Isabelle IIALBERT
Directeur de fabrication
Edmond COUDERT
Maquette
Jean-Luc AULNETTE-
Secrétariat - Abonnements
CatherineFAUREZ-Tél 99.52.98.11
Relations extérieures- Promotion
S. FAUREZ
Administration - Diffusion
Editions SORACOM
La Haie dePan - 35170 BRUZ
RCS Rennes B319 816302
CCP Rennes 794.17V
Tél. 99.52,98.11 +
Télex SORMHZ 741.042F
Serveur 3615 MHZ
Vente au réseau exclusivement
B.E.P. 5, rue du Fbg Montmartre - 75009 PARIS
C. CHOUARD Chef des ventes
Tel. 1.47.70.06.71
Régie publicitaire
IZARD CREATION- 15. rue St-Melaine
35000 RENNES - Ta 99.38.95.33
AMSTRAD»
CPC est une i
iemarque déposée.
e mensuelle totalement indépen-
dante d'AMSTRAD GB et D'AMSTRAD FRAN-
CE.
Les noms, prénoms et adresses de nos abonnés sont
communiqués à nos services internes du groupe,
ainsi qu'aux organismes liés contr actuellement
pour le routage. Les informations peuvent faire
l'objet d'un droit d'accès et de rectification dans le
cadre légal.
Les articles et programmes que nous publions dans
ce numéro bénéficient, pour une grande part, du
droit d'auteur. De ce fait, ils ne peuvent être imi-
tés, contrefaits, copies par quelque procédé que ce
soit, même partiellement sans l'autorisation écrite
de la Société SORACOM et de l'auteur concerné.
Les opinions exprimées n'engagent que la respon-
sabilité de leurs auteurs. Les différents montages
présentés ne peuvent être réalisés que dans un but
privé ou scientifique mais non commercial. Ces ré-
serves s'appliquent également aux logiciels publiés
dans la revue.
Dépôt légal à parution
Distribué en Suisse par :
SEMAPHORE -Tfl. 02254.1 1.95
R
Il est difficile de taper un programme
d'une revue sans commettre d'er-
reurs ! Quand les erreurs sont signa-
lées (Syntax error in. . ., Une does not
exist in...), la correction est facile puis-
que la ligne est indiquée, mais
lorsqu'au "point de vue" du CPC, le
programme est correct, il peut en être
tout autrement pour le lecteur :
Si le fonctionnement du programme
ne correspond pas vraiment au pro-
gramme original, alors il est impossi-
ble de retrouver l'erreur commise, à
moins de comparer les lignes de votre
programme avec celles du journal
mais c'est très long et on risque de pas-
ser sur une erreur sans la voir.
C'est pourquoi ce programme a été
créé ; il est à utiliser si vous ne retrou-
vez pas vos erreurs.
La frappe d'un programme de votre
journal favori (CPC) terminée, vous
faites "RUN" et là, vous corrigez tou-
tes les erreurs signalées par le CPC en
vous référant au journal pour compa-
rer. Si, malgré cela, il ne tourne tou-
jours pas, suivez cette procédure :
— sauvez votre programme en ASCI I
grâce à l'instruction : Save "nom
prog", A.
Puis, si vous êtes sur K7, rebobinez la
bande jusqu'au début du fichier ;
— chargez Anti-Erreurs ;
— entrez le nom de votre programme
et insérez le support où il se trouve (K7
ou disquette).
Après quelques secondes, les numéros
de ligne vont défiler. Vous remarque-
rez qu'à chaque ligne correspond un
code de 2 lettres sous cette forme :
>XX< ; c'est le code' qui va vous
permettre de savoir d'où proviennent
les erreurs. Pour cela, il faut que vous
compariez les codes du journal à ceux
de Técran. Si un code diffère, notez
sur papier le numéro de ligne qui cor-
IGrégory NOE
respond à ce code. Continuez ainsi
jusqu'à la fin du listage.
Le défilement terminé, recherchez
votre programme et corrigez les lignes
que vous avez notées en comparant
avec le journal. Faites "RUN" et ô
miracle ! ça marche.
Attention, iors de la frappe du pro-
gramme a traiter, n'omettez aucun
caractère (sauf les espaces) car Anti -
Erreurs les prend en compte et bien
sûr, ne tapez pas les codes de contrôle..
A TTENTION : cette nouvelle ver-
sion n'est pas compatible avec
l'ancienne. Seuls les programmes
publies dans ce numéro possèdent
un code anti-erreurs correct.
Les instructions de chargement res-
tent, elles, inchangées.
ANTI - ERREURS
10 ' *(«#*#»#*♦*(*#♦**#*♦**♦#»»*#*
26 ■ # t
38 ' *
m ■ #
50 ' *
68 ' #
VERSION 2.8 *
t
78 ' *»*»*«»♦#*»*#*»***#*#*#*#*#♦
(c) CPC \ 6. NOE 1987
'< INITIALISATION >
'■ <«««««««««««««
.58 '
68 ON ERROR 60TO 1258
78 HODE 2
88 DM G*<23)
.98 FOR 1=8 TO 22:READ G*:6*(I)=G*:
NEXT
288 'ATTENTION LA LIGNE DE DATA CI- >RC
DESSOUS NE CONTIENT PAS TOUTES LES
LETTRES DE L'ALPHABET ! I !
218 DATA fliB,C,0,E,F,6,H,J,K,L,H,N, >AD
P,Q,R,-T,U,V,N,X,Y,Z
228 ' ANTI-BUS FICHIER >RE
238 IF PEEK(HIMEM+1)=255 THEN 2B8 >ZD
248 OPENOUT "CPC" >NA
258 MEMORY HIMEM-2 >NX
268 CL0SE0UT >RJ
278 POKE HIMEM+1,255 >FP
288 DEFINT B-Z >«H
298 ' >TB
388 BORDER 6:!NK 8,i:INK 1,16:PEN 1 >JN
: PAPER 8
318 MOVE 8, 16:DRAB 658,16 >TK
328 PRINT TABI27) "A N T I - E R R >GU
EUR S ";CHR$(24l;"Version 2.8"
;CHR*(24)
338 MOVE 8,385:DRAW 658,385 >UJ
348 LOCATE 24,25:PRINT"CPC REVUE DE >EV
S STANDARDS AMSTRAD"
358 WINDOW 1,88,3,23 >NL
368 M$="Rss!ise par Brsgory NOE" /HJ
378 F»="" >XA
388 FOR 1=1 TO LEN(M$! )PU
398 F*=F$+MID*(M*,I,i) >PL
488 LOCATE 78-I,5:PRINT F$ >UL
418 FOR T=l TO 188 >LQ
428 NEXT T,I >EF
438 ' >RH
448 ' ##♦********#*#*********##**** >RJ
****
458 ' >RK
468 LOCATE 2,l:PRINT"ENTREZ LE NOM >XT
DU FICHIER : ";
478 INPUT "%NF* >FD
488 IF NF$="" THEN PRINT CHR«(7!:60 >6R
TO 468
498 LOCATE 2,3:PRINT"IRPRIMANTE OU >VR
ECRAN (I/E)?"
588 R*="":«HILE R$="":R*=UPPER*(INK >NK
EV»):NEND
518 IF R»="I" THEN CA=8:PRINT»BRANC >XD
HEZ-LA..." ELSE 548
528 PRINT#8,CHR*(27);"!";CHR*f20) >AR
538 GOTO 568 >ZF
548 IF R$="E" THEN CA=8:G0T0 568 >VQ
558 B0T0 588 >ZB
568 CLSiLOCftTE 2,3:PRINT"TANT QUE L >0R
E LISTAGE N'EST PAS TERMINE"
578 LOCATE 2,5:PRINT"NE PAS ARRETER >JW
LE MAGNETOPHONE OU NE"
588 LOCATE 2,7:PRINT"PAS SORTIR LA >TL
DISQUETTE"
598 LOCATE 2,18:PRINT"PRESSEZ UNE T >HH
OUCHE POUR LA LECTURE"
688 CALL ((BB85 >LH
618 ' >RH
628 ' «««<«««««««« >RJ
'f^
630 '< TRAITEMENT DU FICHIER >
>RK
448 ' »»»»»»»>»»»»
>TA
658 '
>TB
668 OPENIN "!"+NF*
>LF
678 CLS:PRINT"TRAITEMEf»T EN COURS..
>JR
688 IF LEN(A*)=255 tHEN ft*="":LINE
>¥«
INPUT*9,8*!60T0 1168
698 LINE INPUT#9,B$:A$=B*
>UE
788 IF CflOB THEN BOSUB 1318
>VF
718 IF INKEY(66!=8 THEN STOP
m
728 '
>RK
738 ' CALCUL DE LA CLE DE CONTRO
>TA
LE
748 '
>TB
758 B=8:FLB=8
>«B
768 FOR 1=1 TO LENfA»!
>PH
778 L*=MD»(ft»,I,l>
>riu
788 IF L*=CHR»(34) AND FL6=1 THEN F
,>PC
LS=0:SQTD 848
798 IF L$=CHR*(34) AND FLB=0 THEN F >PD
LB=1:60T0 848
888 IF L*=QM(32) AND FLGOl THEN
>cx
858
810 IF L$=CHR*(39> AND FL6=0 THEN 8
>Cfl
68
820 IF FL6=1 THEN 848
>iœ
830 L$=UPPER$(L$)
>MC
848 A=A+ASC(L*)+I
;LU
858 NEXT I
>PB
128 ' \\ \\
>RD
138 ' \\ "Computer Disco" \\
>RE
140 ' \\ U
>RF
158 ' //Conçu et réalise par//
>RB
160 ' // Rodolphe DEJEUNES //
>RH
178 ' // II
>RJ
180 liililimilllilllllllll
>RK
190 '
>TA
248 MODE 1 : LOCATE 12.10:PRINT CHR$(
>VO
870 CH*=STR*(A)
888 CH$=RISHTt(CH*,LEN(CH*)-l)
898 L=LEN(CH$):L2=LEN(CH*)/2
988 A=VAL(LEFT*(CH*,L2»
910 C=INT(A/23)
928 P=A-(C*23>
938 C$=S$(P>
948 A=WL(RISHT*(CH$,L-L2»
958 C=INT(A/23);P=A-(C*23)
968 Ct=C*+S$(P)
978 '
988 FOR 1=1 TO 6
998 L*=MIDS(A$,I,1>
1008 IF L$<"0" OR L«>"9" THEN 1038
1818 Li$=LI*+L*
1828 NEXT
1038 VH*="":FOR 1=1 TO LEN(A*):IF A :
SC(MD*(A$,1, 11X32 THEN VH*=VH*+"
"ELSE VH$=VH$+HIMI«*,I,1)
1848 NEXT I:B*=VH*
1050 '
1060 IF CA08 THEN 1070 ELSE 1098
1078 PRINT LI»;TABU0) ">"iC*
1088 LI*="":BOTO 1168
1090 LI*="":PRINT#CA,LEFT$(B$,55!;T
ABI57) ">";C*
1180 IF LEN(B$X55 THEN 1168
1110 FG=1
1128 B$=MD*(B$,56,LEN(B*1)
>TE i
1130 PRINT#CA,LEFT$(B*,551
m
>CC
1148 IF FB=1 AND CAOB THEN FB=0:6O >VB
>YC
SUB 1318:G0T0 1150
>XA
1150 GOTO 1108
>LG
>TY
1168 IF EOF=-l THEN CLOSEIN ELSE 60 >HD
>AH
TO 688
>LJ
1170 IF CA=8 THEN CALL SrBB03;PRINT
>RJ
>XC
TAB(50) CHR»(24);"UNE TOUCHE...";CH
>HH
R$(24):CALL &BB85
>UT
1188 CLS:PRINT"HAINTENANT RECHARGEZ
>JC
>TD
";NF*i" ET CORRIGEZ LES LIGNES SUE
>TB
VOUS AVEZ NOTEES. . "
>«K
1190 END
>¥K
>MY
1208 '
>XF
>XJ
1218 ■ ««««««««««««<
m
>XF
1220 '< TRAITEMENTS DES ERREURS >
:>m
>KE
1230 ' «««««<««<<««««
>XJ
>EK
1240 '
>XK
1258 IF ERR=25 THEN CLS:PRINT CHR»(
;>yc
7);CHR«(24);"FICHIER NON ASCII";CHR
m
*(24):END ELSE CQNT
>XJ
1268 '
>YB
m
1270 ' «<«<«««««««<««
>YC
>HZ
1280 '< ATTENTE TOUCHE... >
>YD
>ND
1290 ' «<«««««««««««
>YE
>9M
1308 ' -
>XG
1310 COM=COH+kIF C0li>19 THEN CALL
>AF
>UT
&BB03:PRINT TABI58)' "UNE TOUCHE..."
>CB
:CALL 8.BB05:CLS:CON=1
>UB
1328 RETURN
>EK
34)t"CoiPUter Di5co"+CHR*!34}:L0CAT
E 10.13:PRINT CHR$(164)+" 1986 - R. /
DEJEUNES"
250 DATA 1.1,3.4,5,4,3,1.0,1,3,4,5, )QF
4,3,0,1,1,3,4,5,4,3,1,0,1,3,5,4,0,3
I ■ i -
I 260 DIH n!32i:REST0RE 250:FOR i=l T >ZJ
D 32:READ ndiiNEXT i
270 DATA 179, 159, 142, 127, 149,106,95 >FB
,89,80
280 DIH g(10):RESTORE 270:FOR i=l T >XE
9:READ oii!:NEXT i
298 DATA 5,3,1,2,5,3,1,2 >0R
308 DIH til6):REST0RE 298:F0R i=l T >YZ
SiREAD ttihNEXT i
310 DATA 1.2,3,1.1.2,3,2,1,2,3,1,1, >QJ
2,3,3,1,2,3,1,1,2,3,2,1,2,3,1,1,4,1
,4
328 DIB b!32i:RESTQRE 318iFDR i=l T >YK
32;READ bii):NEXT i
338 DATA 1911,38,8.1,60,10,0,5
340 DIH h(4i.v!4):REST0RE 330:FOR i
=1 TO 4:READ h(i) ,v(i):NEXT i
350 ENV 1,1. 15,1. 15.-1, 2:ENV 2.8.-2
,1:ENV 3, 1,15,1, 15,-1. 4:ENV 4.3,5,1
. 15.-1. 1:ENV 5,1,13.1.3,-1,2,10,-1.
8:ENV 6,1,15,1,3,0,1,15,-1.12
368 TEH=18
370 FOR i=l TO 9:S0UND 7,5(1), 5, 6:N
EXT 1
380 FOR i=l TO 32:S0UND 4,hib(i!).t
eni,0.bui,,v(b(i!):SOUND 3.g(t(lll,
Se«/2,4i SOUND 3.0,te«/2,0:NEXl 1
390 FOR i=l TO 8
480 a=oit!lî)
418 If'a=179 THEN q!4i=134 ELSE q(4
5=127
428 a=a*2
430 FOR j=l TO 32
440 SOUND 34,a,te«/2,0.5:SOUND 28.h
ibul),te»,0,bi.jl,,v(b(.jii:SOUND 1,
git(ii+n(j)-l),te*,0.6*SSN(n())i:SO
ÛND 2,a/2,tein/2,0,5
450 NEXT i,i
460 «ODE 2
470 IF 2=1 THEN FOR 1=1 TD 8: SOUND
l,9(t(l)+n(i)-l),tei8,0,6»SBN(n(i)):
NEXT i:END
480 FOR i=l TO liiSDUND l.flitditnf
/HA o
i!-îi.ten,0,6*SGN!n(iii:SOUND 6.0. t
ei,0:NEXT 1
490 FOR 1=1 TO 2IF0R i=l TO 32-.S0UN >XD.
4.h(b(i)),te«i,0.bUi,,v(bti)):SOU
ND3,0,te«.0;NEXT i,j
500 RESTDRE 550:FDR l=! TO 63:READ >Z(1
t,d:SQUND 3,h!ti,d*te«i,0.t,,viti:SO /
UND 4,0,d«te»,0;NEXT
510 FOR i=l TO 32:SQUND 4,h(b(iii.t >AZ
em,0,'b(ii,,v(bii)):SOUND 3,0.teit,0:
NEXT 1
520 FOR 1=1 TO 16:S0UND l.aitiii+ni ;>DC
i)-l),te»,0,6«SBN(n(i)):SOUND 4,qtt
il!+n(i)-l)/2.te«,0,6*S6N(n(ii)iSOU
ND 2,0,te»,0:NEXT
538 IF 2=0 THEN z=l:60T0 390 >VY
540 END >TC
558 DATA 1,3,1,1.1,3,1,1,1,3,1,1 >XB
560 DATA 1,1,3,1,1,1,3.1 >QF
576 DATA 1,3,1,1,1,3,1,1,1.3.1,1 >XJ
580 DATA 1,1,3,1,1,1,3,1 >0H
598 DATA 1.3,1,1,1,3,1,1,1,3,1,1 >XL
688 DATA 1,1,3,1,1,1,3,1 >0A
610 DATA 1,3,1,1,3,4,1,3,1,1,3,4,1, >ICX
3,1,1,3,4,1,3,1,1,3,1,3,1,3.1,3,1
628 DATA 1,1.5,2,0.5,3,1,1,1,1,1.5, >MV
2,0.5,3,1,1,1
630 DATA 1.0.5,1,1,1,8.5,1,1,1,0.5, >AV
2,0.5,2,1, 2,1, 2,1. 5,4,8.5»
MUSIQUES
V'La soupe aux choux"
Adapt.; R.DEJEUkEE .
////
14e
156
160
170
m
i% '
208 HOUE 1 : LOCATE 10.10:F'RINT CHR*i
34i+"La soupe aus choux"*CHR$(34):L
OCATE •16.13:PRINT"Ada»te par K.DEJE
UNES"
21» ENV 1.1.15.1,18.-1.1.2.2.1.9,-1
,3
226 ENT -1.1. 1.1.1. -1.1
236 ENV 2.3.5, 1.2.-1.6. 13.-1. 12;ENT
2.1.4.1.2.-2,1
240 READ c.n.i.a
250 T=T+1: IF T=100 THEN MODE 2
260 IF c=0 THEN END
270 IF c=l OR c=33 THEN SOUND c.n.i
,0,1,1. a ELSE SOUND 0,0,1.9.2.2
280 SOTO 240
290 DATA 1.426.24,0,1.851.24,0,1,42
6,24,0,1.851,24.0,1,426.24.0,1.851.
24,0,1,426,24,0.1.851,24.0
300 DATA 33.426,24.0,12,71,12,0,4,8
0, 12, 0,33,851, 24.0. 12, B9, 12, 0,4.95,
12,0,33,426.24,0.12,106,24,0
310 DATA 33.851,24,0,12,104,12,0,4,
119,12,0,33,426,24,0,12.106,24,0,33
.851.24,0,12.106.12,0,4,119,12,0.33
,426,24,0,12.106.12,0,4,95,12,0,33,
851.24,0,12,89,12,0,4,80.12,0
320 DATA 33,426,24,0,12.71,12.0,4,8
0,12,0,33,851,24,0.12,89,12,0,4,95,
12,0,33,426,24,0,12,106,24,0
330 DATA 33,851,24,0.12,106,12,0,4,
89,12,0,33,284,24.0,12,95,12,0,4,10
6,12,0,33,568,24,0.12,95,12,0,4,119
,12,0.33,284,24,0,12,142,48.0,1,568
,24.0
340 DATA 33,426,24,0,12,71,12,0,4,8
0,12,0,33,851,24,0,12,89.12,0.4.95,
12,0,33,426,24,0,12,106.24,0
350 DATA 33,851,24,0,12,106,12,0,4.
119,12,0,33,426,24,0,12,104,24,0,33
,851.24,0,12,106.12.0,4,119,12,0,33
,426,24,0,12,106,12,0,4,95,12,0.33.
851,24.0,12,89,12.0,4,80,12,0
360 DATA 33,426,24,0,12,71,12.0,4,8
0,12,0,33,851,24,0,12,89,12,0,4,95,
12,0,33,426,24,0,12,106.24,0
370 DATA 33,851,24,0,12,106,12,0,4,
89.12,0,33,284,24,0,12,95,12,0,4,10
6,12,0,33,568,24,0,12,95,12,0,4,119
,12,0,33,284,24,0,12,142,48,0,1,568
■RQ
Rodolphe DEJEUNES
,24,0
380 DATA 33,268,24,0,12,134,24,0,33 >ZK
,536,24,0.12,134.12,0,4,119.12,0,33
,268,24.0,12,106,12.0,4,95,12,0,33,
536,24.0,12.89,24.0
390 DATA 33.358.24. 0.12, S?. 12,0, 4. 5 M
0.12,0.33,716,24,0,12.71,24,0.33,35
8,24,0,12.71,12,0,4.67.12,0.33,716.
24,0,12,60,24.0
400 DATA 33,268,24.0,12,134.24,0.33 >HZ
.536,24,0,12,134,12.0,4,119.12.0.33 -
,268.24.0,12,106.12.0,4.95,12.0,33,
536, 24, 0, 12, B9. 48, 0, 1 . 478, 24, 0,33, 9
56,24,0,12,119,24,0,33.478,24.0,12,
119,48,0,1,956,24,0
410 DATA 33,268.24,0,12,134.24,0,33 >ID
,536,24,0,12,134.12,0.4,119.12,0.33
,248,24,0, 12, 106, 12,0,4,95, 12,0,33, ,
536,24,0,12.89.24,0
420 DATA 33,358,24,0,12,89,12,0,4,8 >RU
0,12,0,33,716,24,0,12,71,24.0,33,35
8,24,0,12,71,12,0,4,67,12,0,33,716,
24.0.12,60,24,0
430 DATA 33,426,24.0,12.67,12,0.4,7 >NL
1,12,0,33,851,24,0,12,80.12.0.4,89.
12,0,33,426,24,0,12,95,12,0,4.89,12
,0,33.851.24.0,12,80,12.0,4.95.12,0
,33,284,24.0,12,71,96,0,1.568.24.0,
1,284,24,0,1,548.24.0
440 DATA 33,426,24,0.12.71,12,0.4,8 >DQ
0,12,0.33,851,24,0.12,89,12,0.4,95,
12,0,33,426,24,0.12,106,24.0
450 DATA 33,851,24,0,12,106,12.0,4. >VA
119,12,0,33,426,24,0,12,106,24,0,33
,851,24,0.12,106,1-2,0,4,119,12.0,33
,426,24,0,12.106,12,0,4.95,12,0.33,
851,24,0,12,89.12.0,4,80,12,0
460 DATA 33,426,24,0,12,71,12,0,4,8 >DT
0,12,0,33,851,24,0,12,89,12,0,4,95.
12,0,33,426,24,0,12,106,24.0
470 DATA 33,851,24,0,12,106.12.0,4, >RR
89,12,0,33,284,24,0,12,95,12,0.4,10
6,12,0,33,568,24,0,12,95.12,0,4,119
,12,0,33,284,24,0,12,142,48,0,1,568
,24,0
480 DATA 33,426,24,0,12,71,12,0,4,8 >DV
0,12,0,33,851,24,0,12,89,12,0,4,95,
12, 0^33, 426, 24,0,12, 106,24,0
490 DATA 33,851,24,0,12,106,12,0,4, >VE
119,12,0,33,426,24,0,12,106,24,0,33
,851,24,0,12.106,12,0,4,119,12,0,33
,426,24,0,12,106,12,0,4,95,12,0,33.
851,24,0,12,89,12,0,4,80.12,0
500 DATA 33,426,24,0,12,71,12,0,4,8 >DM
0,12,0,33,651.24,0,12,89,12,0,4,95,
12,0,33,426,24,0,12,166,24,0
510 DATA 33,851,24,0,12,106,12,0,4, >RL
89,12,0,33,284,24,0,12,95,12,0,4,10
6,12.0,33,568.24.0,12,95,12,0.4.119
,12,0,33,284,24,0,12,142,46,0,1,568
.24.0
520 DATA 33.268.24,0,12,134,24,0,33 :
.536.24,0,12.134,12,0.4,119,12,0.33
, 268, 24, 0, 12, 106, 12, 0, 4, 95, 12, 0,33.
536,24.0,12,89,24.0
530 DATA 33.358,24,0,12,89,12,0.4,6
0,12, 0.33, 716, 24, 0,12, 71, 24,0.33.35
8,24,0,12,71,12,0,4.47,12.0.33.716,
24.0,12.40,24.0
540 DATA 33.266,24,0.12.134,24,0,33 ;
,536,24,0,12,134.12,0,4,119.12.0.33
,26c, 24,0, 12, 106. 12. 0,4. V j, 12,0, -j-j,
534,24,0,12,89,48,0,1,478,24,0,33,9
56,24,0,12,119,24,0,33.478.24.0,12,
119,48,0,1,956,24,0
550 DATA 33,268,24,0,12,134,24,0,33
,536,24,0,12,134,12,0,4,119.12.0.33
,268,24,0,12.106,12,0,4,95.12.0.33,
536,24,0,12,89,24.0
560 DATA 33,358,24,0,12.89,12.0.4.8 :
0,12,0,33,716,24,0,12,71,24,0,33,35
8,24,0,12,71,12,0,4,67,12,0,33,716,
24,0.12,66,24,0
570 DATA 33,426,24.0.12.67,12,0,4.7 ;
1.12.0.33,851,24,0,12,80.12.0,4.89,
12,0.33,426,24,0,12,95,12,0.4.89,12
,0.33,851,24,0,12,80,12,0.4,95.12.0
,33,284,24,0,12,71,96,0,1,568,24.0,
1,284,24,0,1,568,24,0
580 DATA 33,426,24,6,12,106,12.0,4, :
95,12,0,4,89,12,0,4,106,12,0,1,851,
24,0,33,426,24,0.12,71,144,0,1,851,
24,0,1.426,24,0,1,851,24,6,1,426,24
,0.1,851,24,6
590 DATA 33,478.24,0,12,119,12,0,4. ,
106,12,0,4,95, 12,0,4, 119, 12, 0.1. 956
,24,0,33,478,24,6,12,71,144,0,1.956
,24,0,1,478,24,0,1,956,24,0,1.478.2
4,0,1,956,24.0
600 DATA 33,424,24,0,12,166,12,0,4, ;
95,12,0,4,89,12,0,4,106,12,0,1,851,
24,6,33,426,24,6,12,71,144,6,1,851,
24,0,1,426,24,6,1,851,24,0,1,426.24
,0,1,851,24,0
610 DATA 33,478,24,0,12.119,12,6,4, ',
106,12,0,4,95,12,0,4,119,12,0,1,956
,24,0,33,478,24,0,12,71,144,0,1,956
, 24, e, 1,478, 24,0, 1,956,24,0, 1,476,2
4,6,1,956,24,0
620 DATA 33,424,24,0,12,71,12,6,4,8 :
0,12,0,33,851,24,0,12,89,12,0,4,95,
12,0,33,426,24,0,12,104,24,0
630 DATA 33,851,24,6,12,106,12,6,4, ;
89,12,0,33,426,24,0,12,95,12,0,4,80
,12,0,33,851,24,0,12,71,12,0,4,60,1
2,0,33,426,24,6,12,53,24,0
640 DATA 0,0,0,0 j
E
u
Vous êtes un
fervent
cruciverbiste ?
Concoctez vous-
même vos grilles et
imaginez des
définitions
tortueuses sur 8x8
carres.
1* r * option :
CREER GRILLE
Avant de jouer sur des grilles, il faut
les créer. Vous pouvez créer jusqu'à
30 grilles 8 x 8 par fichier. La saisie de
la grille est automatique (DEL pour
revenir en arrière), la touche < 1 >
sert à entrer les carrés. Pour les
définitions, respectez la longueur
maximum simulée par des tirets sinon
l'affichage de celles-ci sera dcsordon-
2- option : JOUER
la grille affichée contiendra les mots
ou lettres déjà trouvées si vous le
souhaitez, vous pourrez ainsi
reprendre votre recherche où vous
l'aviez laissée. Déplacez l'étoile
clignotante sur une case vide puis
appuyez sur <RETURN>. Tapez
< 1 > pour entrer un mot horizontal
ou <2> pour un mot vertical. La
saisie est alors automatique même si
des lettres ont déjà été trouvées. Les
lettres justes restent, les mauvaises
s'effacent.
Dernière option :
CHARGER FICHIER
Cette option se passe de commentai-
res.
MOTS CROISES
•Philippe PERROTTEY
Ai/Lderrfé tr
VARIABLES PRINCIPALES
cl$(31,9,9)
c2$(31,9,9)
d$(31,17)
se
"g
: contient toutes les grilles du fichier
: contient les lettres trouvées par le joueur dans
chaque grille
: contient les définitions de chaque grille
: nombre de cases pleines dans la grille sélectionnée
: nombre de grilles dans le fichier
: numéro de grille sélectionnée
10 '************** >LA
20 ' H0T5 CROISES >LB
J0 >(_Q
4» ' F'h PERROTTEY >LD
50 ************** )LE
m DIM cl$(31,9,9),c2*!31,9,9),d»(3 >EZ
1,17)
65 DEFINT a-z >PH
70 ================ >LB
8« ' MENU PRINCIPAL >LH
98 '====■=====■====== >LJ
m MODE 0:INK 1,26: 1NK M:INK 2,1 >LB
4: BORDER
110 PRINT CHR* (22i ; CHR* < 1 > ; : TAGiMOV >MZ
E 132,366,2:PRINT"M0TS CROISES": : TA /
SOFFiLOCAÏE 5. 3: PRIMT"MOTS CROISES"
;CHR*(22):CHR»10)
120 PLOT 112,376, hDRAHR 4l6,0;DRAi» >LF
R 0,-32:DRA«R -416,0:DRA»R 9,32
130 n$(l)="J0UER":n$(2)="CREEF; GRIL >LV
LE":n$(3)="CHARGER FICHIER"
140 y=10 >tU
150 FOR i=l TO 3 >VF
160 LOCATE 10-LEN(n*(il)/2,y:PRINT >LD
" ";tl*(i!
170. y=y+5 >HD
180 NEXT >EE
190 y=W ;SD
200 LOCATE 10-LEN(nf(¥ ■-:;:, y:FA ;>LN
PER 1:PEN 2:PRINT";";nS y :-: >i' '.-:
PAPER 0-.PEN 1
210 e*=INKEY»!lF e*="" '«s ::<■ >X«
_
22» IF e*=CHR*(13) THEN (IODE 2:y=y/ >EC
5-l:ON y GOTO 286, 1078, 1338
236 IF e»=CHR$<248> IHEN y=y-5:ee=5 >GX
:IF y<16 THEN y=10:GOTO 268 ELSE 26
«
248 IF e$=CHR*(241i THEN y=y+5:ee=- >RN
5: IF y>20 THEN y=28:60T0 260 ELSE 2
258 BOTO 218
260 LOCATE 18-LENln»((y+eei/5-l))/2
,y+ee:PRINT " ";n*(iy+ee)/5-i)" "
278 BOTO 280
>PE
>VH
288 '===== >TA
290 ' JOUER >TB
308 '== >RD
310 5C=0:CLS:IF ng=0 THEN NODE 0:LO >6X
CflTE 3,12:PRINT"PAS DE FICHIER":FOR
1=1 TO 1008:NEXT:GOTO 108
320 INPUT"Entrsz numéro grille sur >TS
laquelle vous voulez jouer ou [0] 5
i celle-ci est déterminée au h
asard : ",gn:CLS
330 IF gn=0 THEN gn=INT(RND*ng)+l ,>BN
340 IF gn>ng THEN 320 >ND
358 BOSUB 1750 >QC
360 GOSUB 1910 >QB
370 IF sc=64 THEN WHILE INKEY$="":L >6H
OCATE 25,25:PRINT"VOUS AVEZ FINI CE /
TTE GRILLE...": FOR t=l TO 158:NEXT:
LOCATE 1.25:PRINT CHR$(18) jiFQR t=l
TO 150:NEXT:t€ND:CLS:GOTO 920
380 LOCATE 38,25;PRINT CHR*(24);"[C ,:>UB
0PY]";CHR*(24);" pour arrêter"
390 ' >TC
406 ' TEST CLAVIER JRE
410 ' >RF
426 x=4:y=6 >VF
430 LOCATE 2,22:PRINT li >YZ
":LDCATE 2,24:PRINT "
440 c2*=c2*(gn,K/2-l,y/2-2i:IF c2*= >PL
"" THEN c2»=" "
450 e$=INKEY$:IF e*="" THEN LOCATE >QX
x,y:PRINT"«":FOR i=l TO 150:NEXT;LO
CATE x,y:PRINT c2»:F0R i=l TO 156:N
EXT:60T0 458
466 IF e*=CHR*(224> THEN CLSlBOTO 9 >DY
26
470 IF e*=CHR*<13) AND c2»=" " THEN >CH
538
488 IF e$=CHR$<243> THEN LOCATE x,y >OH
:PRINT c2$:x=x+2;IF x>18 THEN x=18
498 IF e$=CHR*(242! THEN LOCATE x,y >HB
:PRINT c2*:k=x-2:IF x<4 THEN x=4
506 IF e$=CHR*(240) THEN LOCATE s, y >HZ
:PRINT c2*:y=y-2:IF y<6 THEN y=6
• " ' • il B
510 IF e»=CHR»(241) THEN LOCATE x,y >QT
:PRINT c2$;y=y+2:IF y>20 THEN y=26
520 GOTO 440
>ZB
536 LOCATE 2,22:PRINT"1 - Horizonta >XE
lèsent": LOCATE 2,24:PR1NT"2 - Verti
calement"
540 e*=INKEY*:IF et="" THEN 540 >XJ
558 e=VAL(e») >KE
560 IF 6=1 THEN LOCATE 2,22:PRINT C >TC
HR»(24))"1 - Horizontalement";»»)
24);:G0T0 580
570 IF e=2 THEN LOCATE 2,24:PRINT C >AF
SERVEUR
MINITEL
N'oubliez pas
36.15 code MHZ
i-ft'
La B.A:L. permet un dialogue direct avec
la rédaction. ^?~^.-*3&
HR$(24)i"2 - verticale»ent";CHR*(24
);:S0T0 5B0 ELSE 548
580 ON e GOTO 590,756 >NF
59f) ■ _ >TE
608 ' SAISIE HORIZONTALE >RG
6ie ' >rh
626 e=l:xl=x:x2=x >HA
638 LOCATE x2,y:PRINT CHR*<243):F0R >AL
i=l TO 158iNEXT:LOCATE x2,y:PRINT"
":F0R i=l TO 150:NEXT
640 e*=UPPERt i INKEV*) ; IF e*="" THEN >FF
630
656 e* le) =e*: LOCATE x2,y:PRINT e»(e >DX
)
666 x2=x2+2:IF c2$(gn,x2/2-l, y/2-2! >F«
=CHR*(143) OR x2>18 THEN 690 '
678 IF c2»(gn,x2/2-l,y/2-2K>"" THE >CQ
N IF c2»(gn,(x2+2)/2-l,y/2-2)OCHR$
1143) OR x2+2<=18 THEN e=e+l:e»ie)=
c2*(gn,x2/2-l, y/2-2) :sc=sc-l:60TB 6
60 ELSE 698
680 e=e+l: BOTO 638 >«C
698 FOR i=l TO e >YC
780 IF ci*(qn,sl/2-l,y/2-2K>e*li! >RZ
THEN LOCATE xl,y:PRtNT" "iGOTO 720
718 c2*(gn,xl/2-l,y/2-2i=cl*(gn,xl >XP
/2-1, y/2-2) :sc=sc+l
726 xl=xl+2 m
736 NEXT >EF
740 IF sc=64 THEN 1816 ELSE 398 >«Z
758 '
760 ' SAISIE VERTICALE
770 ■
786 e=l:yl=y:y2=y
796 LOCATE ;<,y2:PRINT CHRt(241):F0R
i=l TO 158: NEXT: LOCATE x,y2:FRINT"
"iFOR i=l TO 150:NEXT
868 e*=UPPER*UNKEY$):IF e»="" THEN
796
816 e$(e!=e»:LOCATE x,y2:PRiNT e$!e
)
828 y2=y2+2:IF c2t(gn,x/2-l,y2/2-2)
=CHR*(143i OR y2>20 THEN 850
830 IF c2*ign,x/2-l,y2/2-2K>" THE
» IF c2*lgn,x/2-l,(y2+2)/2-2)OCHR*
(143) OR y2+2<=20 THEN e=e+l:e$(e!=
c2* (gn, x/2-i , y2/2-2) : sc=sc-l :60TO 8
26 ELSE 858
848 e=e+l:G0T0 798
856 FOR i=l TO e
860 IF cl*(gn,x/2-l,yl/2-2)Oe«(i)
THEN LOCATE x,yl:PRINT" "iGOTO 886
B78 c2*(gn,x/2-l,yl/2-2)=ci*(gn,x/
2-l,yl/2-2):sc=sc+l
888 yl=yl+2
898 NEXT
900 IF sc=64 THEN 1016 ELSE 398
916 '
926 ' ARRET DU JEU
936 '
946 PRINT"Voulez-vous .jouer sur une
autre grille iO/N) ?"
958 e*=UPPER*(INKEY*):IF e$0"O" AN
D e»<>"N" THEN 950
960 IF e$="0" THEN 280
976 CLS:PRINT"Voulez-vous sauver vo
s mots trouves dans toutes les gril
les (O/N) ?"
988 e*=UPPERt(INKEY*i:IF e*O"0" AN
D e$<>"N" THEN 988
998 IF e*="N" THEN 188
1686 BOTO 1548
1818 '
1028 ' GRILLE FINIE
1836 :
1035 LOCATE 2,22<PRINT*
":LCCATE 2,24:PRINT "
>TC
:>TD
>TE
>MM
•AR
>FL
>DV
>FD
>CC
■«H
>YA
>RP.<
M
>FC
>NX
>TA
:TB
>TC
,VB
>VQ
>NN
■PS
>NF
>LJ
>XE
•>XF
>XG
>AV
1040 NH1LE INKEY*="": LOCATE 28,25:P >XB
RINT"BRAVO ! ' VOUS AVEZ FINI CETTE
BRILLE "":F0R t=l TO 158:NEXT:L0CA
TE 1,25:PRINT CHRtU8)::F0R t»i TO
150: NEXT: WENDiCLS: GOTO 920
1050 ============= >XJ
1066 ' CREER GRILLE >XK
1870 '========== >YA
10B8 IF ng>36 THEN HODE 6:L0CATE 4, >JH ,
_.„_
• ■
■ SfflWaR
wmmmMmm - - '
12:PRINT"FICHIER PLEIN":FOR i=l TO
1080:NEXT::6ÛTO 100 ELSE LIS
1090 gn=ng:gn=gn+l >NP
1H» 60SUB 1758 m
1110 LOCATE 38,25:PRINT CHR*!24>;" >QK
ENTREZ VOTRE GRILLE "jCHR»(24)|
1126 x=4:y=6 >EL
1138 LOCATE x,y:PRINT CHR$(243):F0R >ZK
i=l TO 150:NEXTllOCATE x,y;PRINT"
":F0R i=l TO StBiNEXT
1148 e$=UPPER»<INKEY*):IF et*"" THE /SB
N 113»
1158 IF ASC(e*)=127 THEN LOCATE x,y >NY
iPRINT" ":x=x-2:IF s'A THEN x=18:y=
y-2: IF y<6 THEN y=6:60TO 113» ELSE
1138 ELSE 1138
1168 IF ASC(e$!=49 THEN e*=CHR$!143 >B8
1178 cl*(gn,x/2-l,y/2-2)=e$:LDCATE M
ï,y;PRINT e$
1188 x=x+2:IF x=28 THEN s=4:y=y+2:I >LB
F y=22 THEN LOCATE 1,25:PRINT CHR$(
18);:SOT0 1288
1198 BOTO 1138 >HD
1288 LOCATE 25,4:PRINT CHR$(24);"i >NB
- Horiîontalraant'iLOCflTE 25,14:PRI
NT"2 - Verticalement"
1218 LOCATE 28,25:PRINT" ENTREZ LES >HL
DEFINITIONS ";CHR$(24i; '
1228 y=4 >XA
1238 FOR 1=1 TO 16 >LG
1248 y=y+lsIF y=13 THEN y=15 >WA
1258 LOCATE 25, y: IF i<9 THEN PRINT >CL
RISHT*(STR*ll+180),2); ELSE PRINT
RI6HT*(STR»U-8+lW),2)i
1268 PRINT H .";STRINS$(58,"-"I >XY
1278 LOCATE 28,y:INPUT",d*(gn,i) >BE
1288 NEXT i
1298 IF ng=38 THEN 1328 ELSE CLS:RR
INT"Voulez-vous créer une autre gri
lie (O/Nl ?"
1388 eJ=UPPER*(INKEY*):lF e$O"0" A
ND e*<>"N" THEN 1388
1318 IF e*="0" THEN 1888
1328 BOTO 1548
1338 ====================
1348 ' CHAR6ER UN FICHIER
1350 ===================
1368 CLS: INPUT"No« du fichier a cha
ryer : ",nf$
1378 OPENIN nf*
1388 INPUT#9,ng
1398 FOR i=l TO ng
1488 FOR y=l TO 8
1418 FOR x=! TO 8
1428 INFUT#9,cl*i],x,y)
1438 INPUT»9,c2*(l,x,yi
1448 NEXT K
145» NEXT y
1468 NEXT i
1478 FOR 1=1 TO ng
1488 FOR d=l TO 16
■1498 INPUT#9,d«il,d)
1588 NEXT d
1518 NEXT i
1528 CLOSEIN
1538 BOTO 188
1540 ================
1558 ' SAUVER FICHIER
1568 '================
1578 CLS:INPUT"No« du fichier a sau
ver : ",nfî
1588 OPENOUT nf*
1598 «ITE#9,ng
k3JL • ••
... VOUS ETIEZ ABONNE A CPC
VOUS AURIEZ REÇU CE NUMERO
GRATUITEMENT !
BON DE COMMANDE PAGE 30
1688 FOR 1=1 TO ng
1618 FOR y=l TO B
1628 FOR s=l TO B
1638 l#ITE#9,ci*u,;i,y;
1648 «RITE#9,c2*il,x,yl
1658 NEXT x
1668 NEXT y
1678 NEXT l
1688 FOR i=l TO ng
1698 FOR d=! TO 16
1708 »RITE#9,d»(l,d!
1718 NEXT d
1728 NEXT i
1738 CLOSEOUT
1748 BOTO 188
1750 '
1768 ' TRACABE GRILLE
1770 '
1788 LOCATE 6,2iPRINT"6RILLE N.":RI
GHT*iSTR*!l08+qn!,2i
1798 e=8:F0R i=3 TO 17 STEP 2:e=e+l
iLOCATE i,4:PRINT e:NEXT
1888 e=8:F0R 1=6 TO 20 STEP 2:e=e+l
iLOCATE l.i:PRINT e:NEXT
1810 FOR 1=20 TO 148 STEP 16:H0VE i
,328,1:DRA* 8, -256: NEXT
1820 FOR 1=328 TO 72 STEP -32:nWE
20,i:i3RAWR 128,0:NEXT
1838 IF gn>ng THEN ng=ng+l:GOTO 198
1848 FOR y=l TO 8
1B50 FOR x=l TO 8
1860 IF cl»(5n,x,y)=CHR»(143i THE
N LOCATE x*2+2,y*2+4:PRINT CHR*(143
);c2»(gn,;<,y)=CHR*!143i
1870 IF c2*(gn,K,yK>"" THEN LDCA
TE »2+2,y«2+4:PRINT c2*(gn,x,y):5c
=5C+1
1880 NEXT x
1890 NEXT y
1980 RETURN
1910 '
1920 ' AFFICHAGE DEFINITIONS
1930 '
1948 y=4
1958 LOCATE 25,4:PR1NT CHR*l24):"Ho
rizontalement"
1968 LOCATE 25,14:PRINT"Verticale»e
nt";CHR*(24);
1978 FOR 1=1 TO 16
i960 y=y+l
1990 LOCATE 25, y; IF i<9 THEN PRINT
RIGHT»(STR»ii+108l,2); ELSE PRINT
RI6HT$(STR*(i-8tl08),21i
2000 PRINT", ";d*ign,il
2010 IF y=12 THEN y=14
2820 NEXT'
2030 RETURN
>LH
>EJ
>FH
>TS
>TJ
>YC
>XK
m
>LR
>LY
)PP
>VE
>VF
>ZB
>EJ
>YF
>YG
>YH
>CA
>DL
>DW
>CD
>ZD
>DZ
>EE
>FD
>AJ
>YC
>XK
>FD
>YD
>YE
>YF
>XK
:>AL
>LU
>PG
>CY
>PV
>KF
Ci»
u
R
m
RELIEFS
MATHEMATIQUES
RELIEFS MATHEMATIQUES est un
programme graphique permettant de créer
des images de surfaces générées à partir de
fonctions mathématiques du type z=f(x,y).
En fait, "RELIEFS MATHEMATIQUES"
ambitionne de visualiser lesdites surfaces
selon l'aspect qu'elles auraient si on les
matérialisait. Cela implique que leur
représentation tienne compte de la réalité de
la perspective (le programme crée un effet
de perspective à trois points de fuite) mais
également de la quantité de lumière que
chaque élément de la surface renvoie à l'œil
de l'observateur (selon leur position par
rapport à la source lumineuse qui les éclaire,
ces éléments sont plus ou moins clairs, d'où
l'effet de relief). De plus, "RELIEFS
MATHEMATIQUES" offre la possibilité de
visualiser les fonctions à tracer sous
n'importe quel angle.
• Thierry
CHILLAN
»- Y
Figure 1
PRINCIPE
DE FONCTIONNEMENT
Une fois entrés les données et paramè-
tres qu'on lui a fournis (nous les ver-
rons plus loin) le programme com-
mence par découper le domaine
d'étude en triangles équilatéraux ; il
s'arrange en tout cas pour qu'un
pavage de triangles équilatéraux
recouvre la totalité de ce domaine
(fig. !)•
Les sommets de ces triangles ont cha-
cun une abscisse X et une ordonnée Y
à partir'desquelles sont calculées les
coordonnées Z d'altitude (fig. 2).
. L Z
Figure 2
source
lumineuse
*
triangle B
Cette troisième coordonnée, pour cha-
cun des sommets, permet de définir un
nouveau triangle B dont les sommets
appartiennent à la surface à tracer. Le
triangle B est en fait la projection
approximative du triangle A sur la
surface (voir schéma précédent) dont
nous considérons qu'il constitue une
facette. On définit alors un vecteur Vn
orthogonal au plan du triangle B et
dirigé dans le sens des Z croissants et
urt vecteur Vecl reliant la source lumi-
neuse éclairant la surface au centre de
la facette. En fonction de l'angle que
forment ces deux vecteurs, le pro-
gramme détermine quelle couleur il
devra affecter à cette facette, sachant
que plus l'angle est grand, plus cette
couleur est claire.
Les facettes sont ensuite affichées à
l'écran en partant de celles qui sont le
plus éloignées de l'observateur vers
celles qui sont les plus proches ; c'est
l'algorithme du peintre.
MODE D'EMPLOI
Tout d'abord exprimer la fonction à
tracer dans le DEF FN de la ligne 110.
Placer son nom dans le SAVE de la
ligne 990, juste après le point d'excla-
mation, en vue d'une sauvegarde de
l'image.
Le programme est alors prêt à fonc-
tionner : le lancer par RUN puis
répondre aux indications de l'écran.
— Xmin, Xmax, Ymin, Ymax sont
les bornes inférieures et supérieures du
domaine d'étude, respectivement par
rapport aux axes X et Y.
— Degré de maillage : ce paramètre
sert à définir la finesse du tracé : plus
il est grand, plus la surface à afficher
est réaliste.
— Angles de vision vertical et hori-
zontal, distance de l'observateur : ces
paramètres correspondent aux coor-
données sphériques de la position de
l'observateur (fig. 3).
— Pour l'option suivante, sélection-
nez le choix 2 quand la surface que
vous avez à tracer présente des asymp-
totes, sinon toujours choix 1.
— Angles vertical, horizontal d'éclai-
rage et distance de la source lumi-
neuse : coordonnées sphériques de la
position de la source lumineuse éclai-
rant la surface.
— Sélection d'un mode d'affichage.
Choix 1 : ce choix est réservé aux
écrans monochromes. Le programme
travaille en mode et l'effet de relief
sur les surfaces est réalisé grâce à l'uti-
lisation des 16 nuances de vert dispo-
nibles à l'écran. Si cette option est
sélectionnée, le programme demande
de choisir le degré de luminosité de la
source éclairante. Le degré 5 donne en
général des images bien contrastées.
Choix 2 : ce choix s'adresse à tous les
types d'écran. Les nuances de couleur
sont réalisées par ' 'tramage' ' . Si cette
option est sélectionnée, la possibilité
est alors offerte d'avoir un affichage
des facettes avec leur contour.
L'ordinateur annonce par un
-4-
"BEEP" que le tracé est terminé.
Vous avez alors la possibilité de sau-
vegarder votre image en pressant la
touche "ENTER", de voir le temps de
calcul s'afficher en pressant la touche
"T". Si la fonction visualisée présente
des asymptotes et que vous la jugez
mal centrée, vous pouvez demander
un nouveau tracé où l'image sera
translatée vers le haut ou vers le bas
d'un certain nombre de pixels ; pres-
sez pour cela la touche d'espace et
entrez une valeur positive (translation
vers le haut) ou négative (translation
vers le bas).
Les images sauvegardées en mode
sont récupérées par les instructions
for I = 1 TO 15 : INK 1,1 + 5 : NEXT
1 : INKO.O BORDER : MODE
LOAD"!"
Celles en mode 2 par : MODE 2
LOAD"!"
NOTER QUE :
— Certains degrés de maillage affec-
tés à certaines fonctions entraînent à
certains moments des anomalies de
fonctionnement du programme. Dans
ce cas arrêter le programme et recom-
mencer en changeant le degré de mail-
lage d'une ou deux unités.
— Pour que "RELIEFS MATHE-
MATIQUES" fonctionne sur CPC
664 et CPC 6128 il faut enlever le
SPEEP WRITE 1 de la ligne 990. Il
faut également modifier les lignes
suivantes :
90 MEMORY &9FFF
960 IF Mo = 2 THEN CALL
&A040.15
2060 CALL &A040, Trame
2330 CALL &A040.15
10 REM *************************
28 REM * *
» REM * RELIEFS NATHErWiaUES *
46 REM * »
50 REM * car T.Ehillan net. 87 *
68 REM * *
78 REM *************************
88 MODE 2 : INK 1.24
TO MEMORY SABFF
le» ON ERROR GOTO 2698
116 DEF FN f<X,Y>=
128 INPUT'Xniin » ",X(iin
136 iNPUT'Xnax = ",X»ax
146 INPUT'Vnun = ",Y«m
158 INPuT"Y»ax = "Jinax
168 INPUFDegre de «alliage
1
176 PRINT
186 INPUT'Angle de vision vertical
.Mai
2510 POKE &BDE9.&0 : POKE ,
&BDEA.&A0
2520 AD = &A000
2535 POKE &A017.&A0
2540 AD = &A040 : n =
2555 POKE &A059.&A0
2580 CALL &A040.15
La ligne 2536 diffère selon les
modèles :
2536 POKE &A025.&71 pour les CPC
6128
2536 POKE &A025.&6D pour les
CPC 664
Quelques exemples :
fonction 5 * COS(COS(SQR(X»X +
Y*Y)))
paramètres dans leur ordre respectif :
-10; 10; -10; 10; 80; 30; 30; 40; 40; 1 ;
60; 120; 10; 1; 5
temps de calcul : 3 h 32 min 56 s
5 * COS (COS(SQR(X»X + Y*Y)))
paramètres : -10; 10; -10; 10; 50; 90;
0; 40; 1; 60; 120; 10; 1; 5
temps de calcul ; 1 h 20 min 45 s
3 * SIN(X)12 * SIN(Y)
paramètres : -3,14; 3,14; -3,14; 3,14;
50; 25; 320; 15; 1; 40; 20; 100; 1; 5
temps de calcul : 1 h 28 min 19 s
10 « SIN (PI/2 * SQR(X*X +
Y*Y))/SQR(X*X + Y*Y)
paramètres : -10; 10; -10; 10; 50; 30;
25; 40; 1; 30; 60; 100; 1; 5
temps de calcul : 1 h 29 min 28 s
10 » SIN (PI/2 * SQR(X»X +
Y»Y))/SQR(X*X + Y»Y)
paramètres : -10; 10; -10; 10; 50; 30;
25; 40; 1; 30; 60; 100; 2; N
temps de calcul : 1 h 29 min 38 s
. Thêta <-¥6<Theta<96) : ", Thêta
196 INPUT'Angle de vision horizonta >VM
1 Phi (8<Phi<3681 : ".Phi
286 INPUT'Distance de l 'observateur >0M
a l'origine : %Ray
216 PRINT >NF
226 DE6 : ct=C0S (Thêta) : st=SIN!Th ,'fl
eta) : cp=C0S(Phi) ! sp=SIN(Phii
236 Pasy-!Y«ax-Y»in)/r1ail : Pasx=Pa >Ttl
sy*SQR(3i/2
246 Xnaxav=X»ax >MQ
256 Xmax=X«in+(INT<u«iax-X«in!/Pasx >RZ
)tll*Pasx
266 IF Xnax=X«axav+l THEN Xi»ax=Xuax >HJ
av
270 PRINPSelectionnez une option : >PC
286 PRINT" 1. Affichage de la tota >CN
lite de la surface calculée"
' 298 PRINT" 2. Affichage de la surf >EB
ace tronquée"
366 INPUT">".opt .'LE
316 PRINT >N0
328 INPUT'Angle vertical û eclairag l'EM
e Alpha i-98<Alpha<98) : ", Alpha
338 INPUT'Angle horizontal d éclair M.
âge Beta (8<Beta<366) : ",Beta
346 INPUT'Distance de la source lu» >XB
ineuse a l'origine : ",R
358 PRINT >PÂ
366 Xecl=R*C0S(fllphal*COS(Beta> '>BM
378 Yecl=R*CÛSl«lpha)*5IN(Beta) ;>BV
386 Zecl=R*SIN(Alphal M
396 RAD : ' si nécessaire \>AC
466 PRINT"Selectipnnez un iode d'af >BC
fichage :"
418 PRINT" 1. Mode (écrans fflonoc >FM
hromes uniquement? : mode FILL 1 '
420 PRINT" 2. Mode 2 : «oae TRAMES >BB
438 INPUT">",no >HH
440 PRINT >PA
456 IF Mo=i THEN INPUT"Degre de lui >KD
inœite (6-il! i ".Lusi
468 IF Mo=2 THEN INPUPDesirez-vous .'VU
le contour des facettes ? CD/M) :
",Bord$
478 DIH YllMail+l,3),Y2(Mail+2,3) >AT
486 i=6 >PC
496 FOR Y=Y(nin TO Y«ax STEP Pasy >BC
566 i=i+l >BK
516 Yl(i,2)=Y >LB
526 NEXT Y >QB
536 i=8 >NJ
546 FOR Y=Y'min-Pasy/2 TO Ymax+Pasy/ >RC
2 STEP Pasy
550 i=i*i >EE
566 Y2(i,21=Y >LH
576 NEXT Y >QS
588 IF Mo=l THEN Fang=PI/l4 ELSE Fa >v7
ng=PI/15 : Coul=l : G0SUB 2510 : 60
T0 660
590 INK 6,0 : BORDER : PAPER >WC
600 FOR i=2 TO 15 >CE
618 INK i,Luu+i >FG.
628 NEXT i >N6
636 REM ******************** >TR
646 REM Sous-progra«me de calcul d >DV
es extrema et centrage
656 REM ******************** >TU
668 Tpav=TIr€ >ï&
676 XEim=2000 : YEmin=XE«in >XM
680 XEmax=-2088 : YE«ax=XE»ax >YP
690 PX=(X»ax-X«lini : PY=tï«iax-Yflun) >LM
tpasy
700 IF opt=l THEN FX=PX/16 : PY=F'Y; >EK
16
' 710 FOR X=X»in TO X«iax STEP PX >YP
r 11 i
"■"" " "■ 'istîiiÉE^SËM
...,.,-.
726 FOR Y=Ynin-Fasv/2 TO Ymk+P»s >PL
y/2 STEP PY
7313 BOSUB 2428
746 XE«in=MIN(XE«in,XE) : XEiiax
=MAX!XEna,<<,XE)
75» YEimn=MIN(YE»in,YE! : YEliax
=MAX(YEi»x,YE)
768 NEXT Y
778 NEXT X
788 Ecrx=666 : Ecry=366
798 Edu=£crx/!XE«iax-XE«in)/l,87
888 Echy=Ecrv/ (YEaan-YEiin)
818 IF opt=l THEN Echs=niN(Ech;<.Ech
y)
828 Echy=Echx : Echx=Echx*1.67 >YY
638 Xcent=(648-Echx*txEuax+xE!iiin))/ >FB
848 Ycent=i468-Echv»(YE«ax+YE»in!)/ >FF
858 REM ************************ >WK
868 REM Affichage des Facettes >ZB
878 REM ************************ >WM
886 DIK vH3),v2(3),Vn(3),V8cl(3i,P >BH
t(3,3!,XE(3),YE(3).Bary(3)
896 Flag=l : Ist=8 >MQ
988 IF «0=1 THEN INK ULiM+1 ; MODE >MA
6 ELSE MODE 2
918 IF Phi>6 AND Phi<=98 THEN Xdeb= >VT
Xsin : Xfin=Xiax : BOSUB 1358 : BOT
956
928 IF Phi>96 AND Phi<=188 THEN Cas >CD
=1 : Xdeb=Xaax : Xt'in=Xjain ; Pasx=-
Pasx ; BOSUB 1358 : BOTO 956
936 IF Phi>186 AND PhK=276 THEN Xd >TX
eb=Xmax : X-fin=Xmin i Pasx=-F'asx :
BOSUB 1838 : BOTO 956
948 Cas=2 : Xdeb=X«in ; Xfin=X«ax :
BOSUB 1836
958 PRINT CHR*(7)
968 IF Mo=2 THEN CflLL &A946.15
976 Te«P5=!TIME-Tpav)/366 : Heu=Te«
ps\3686 : Minu=(Teiips\68) MOD 68 :
Sec=Te»ps MOD 68
986 A*-INKEY« >PA
996 IF A$=CHR$<13) THEN PRINT CHR*i >XE
71 : SPEED WRITE 1 ; SAVE"!%b,K86
6, 16384 .
1688 IF A*=" " AND opt=2 THEN INPUT >LT
"Translation ! ",Deca : Ycent=Ycent
tDeca : Tpav=TIME : BOTO 898
1818 IF A*="t" OR A*="T" THEN LQCAT >ZD
E 6,1 : PRINT Minus "lin "sSecs's" ;
IF Heu<>6 THEN LOCATE 1,1 : PRINT
Heu s "h*
1626 GOTO 986 >FF
1638 FOR X=Xdeb TO X+"in STEP Pasx >BH
1848 BOSUB 1768 >YD
1856 IF Tst=8 THEN 1326 >0T,
T1666 IF Flag=l THEN 1288
1676 FOR i=l TO Hail+1
1688 FOR ,i=l TQ 3
1898 IF Cas=2 THEN vl(.j!=Y2(i
,j)-Yl(i,j) ELSE v2(j)=Y2(i,j)-Ylfi
,i)
1166 IF iOl THEN Pt,!l,j)=Yl<
1-1,1) : Ft<2,j)=Ylii,j) s Pt(3,jï=
Y2ii,ji
1118 NEXT j
1126 IF iOl THEN BOSUB 1898
1136 FOR j=l TO 3
1146 IF Cas=2 THEN v2(j)=Y2<i
*l,j)-YHi,j) ELSE vl<j)=Y2U+l,ji-
YKiJÏ
1156 Pt(l,.ii=Y2(i,l!
)=Y2(i+l,j) s Pt(3,j)=Ylii,jî
1166 NEXT j
1178 BOSUB 1896
1188 NEXT i
1198 BOTO 1328
1266 FOR i=l TO Nail+1
1216 FOR j=l TO 3
1226 IF Cas=2 THEN v2(j!=Yiil
,j)-Y2(ï,D ELSE vl(j)=Yl(i,j)-Y2(i
,JI
IF iOl THEN Pt!l,j!=Yl
Pt(2,j!=Yl!i,.j) s Pt(3,j)
Ft(2,i >DL
)
>XE
)BF
>HF
>PA
>PB
■FB
F»
1238
II-l,j) :
=Y2(»,j)
1246
1258
1266
1276
NEXT i
IF iOl THEN 60SUB 1896
FOR j»l TO 3
IF Cas=2 THEN vl(j)=Ylfl
,j!-Y2<i+l,.i) ELSE v2(jl=Yl(i,j)-Y2
(i+l,j)
1288 Pt(l,i)=Y2(i,j! : Pt(2,j
i=Y2(i+i,j> s Pt(3,ji=Yl(i,j)
1296 NEXT j
1368 BOSUB 1B98
1316 NEXT i
1326 Flag=-Flag
1338 NEXT X
1348 RETURN
1356 FOR X=Xdeb TO Xfin STEP Pasx
1366 GOSUB (788
1378 IF Tst=6 THEN 1648
1386 IF Flag-1 THEN 1528
1396 FOR i=Mail+l TO 1 STEP -1
1486 FOR j=l TO 3
1418 IF Cas=l THEN vl(j)=Y2(i
+i,j)-Yl(i,l> ELSE v2(j)=Y2(i+l,j>-
YKi.i)
1428 IF i<> Hail+1 THEN PtU,
i)=Yl(i+l,i) : Pt(2,ji=Ylii,j) : Pt
(3,j)=Y2ti+l,j)
1436 NEXT j
1446 IF iOMail+1 THEN BOSUB 18
98
1458 FOR j=l TO 3
1466 IF Cas=l THEN v2(j)=Y2(i
,1)-Yl(i,j) ELSE vl(j)=Y2(i,j!-Ylil
1478 Pt(l,,ii=Y2(i+l,ji
,j)=Y2(i,j) s Pt(3,j>=Yl(iJS
i486 NEXT i
1496 BOSUB 1898
1566 NEXT i
1518 60T0 1646
1526 FOR i=Mail+l TO 1 STEP
1536 FOR j=l TO 3
1546 IF Cas=l THEN v2< jS=Yl(i
,j)-Y2(i+l,D ELSE vlU)=Yl(j, j)-Y2
li+l, J)
1558 IF iOMail+1 THEN Ptll.j
)=Yl(i+l,i) : Ptt2,j)=Yl(i,j) : Pti
3,j)=Y2(i+l,li
>FH
;RB
Pti2 >DN
>XK
>CA
>WB
>PB
-1 >WC
>FB
>XF
1566
NEXT j >XJ
1578
IF iOMail+1 THEN BOSUB 18 >AF
98
15B6
FOR .1=1 TO 3 >BB
1598
IF Cas=i THEN vl',,ii=Yl(i >RF
,j!-Y2fi,J) ELSE v2iji=Yl(i,j)-Y2ti
,.i)
1666 Pt(l,j)«Y2ti+l,j) : Ptiï >DB
,j)=Y2(i,jl : Pti3,ji=Ylii,ji
1616 NEXT J >XE
1628 BOSUB 1898 >BF
1636 NEXT i >«F
1648 Flag=-Flag >LJ
1658 NEXT X >XC
1666 RETURN >FG
1676 REM ************************** >QD
*******************
1686 REM Sous-programme de rangeme >AE
nt des coordonnées
1696 REM ************************** >QF
*******************
1796 IF Flag=-1 THEN 1786
>RX
1716 FOR i=l TO Mail+1
>PC
1726 Yl(i,l)=X
>TE
1738 IF Trans=l THEN Yl(i,2)=Y
>YA
1746 Yl(i,3)=FN f(Yl(i,l),Yl!i,2)
>AE
)
1756 IF Trans=l THEN BOSUB 2636
>ZD
1766 NEXT i
>VK
1776 BOTO 1856
>N8
1788 FOR 1=1 TO Mai 1+2
>PL
1796 Y2(i,l)=X
>UC
1B68 IF Trans=l THEN Y2ii,2)=Y
>YZ
1818 Y2(i,3)=FN f(Y2(i,l),Y2(i,2)
,>AF
)
1828 IF Trans=l THEN BOSUB 2638
;>ZB
1836 NEXT i
>VH
1846 Tst=l
>ffi
1856 RETURN
;>fh
1866 REM **************************
>YE
--12.
■■K
**************************
1670 REM Sous-programme de calcul :
des couleurs et affichage
188© REM **************************
**************************
189© FOR j=l TO 3
1900 Bary(j)=!Pt(l,j>+Pt(2,))+Pti
3,j)l/3
191* NEXT i
1920 Vnii)=vH2)*v2i3)-vli3)*v2t2i
1930 Vn(2i=vl(3)*v2(l)-ïlil)*v2(3)
1910 Vni3)=vl(l)*v2(2!-vii2)*v'2(li
1950 VeciU!=Bary(ti-Xecl
196» Vecli2)=8ary(2!-Yecl
1970 Vecl(3!=Bary(3)-Zecl
196» Prosc=Vn(l)*VeclUi+Vn(2)*Vecl
(2!+Vn(3!«Vœl(3l
1990 VrFSflR(Vn<D"2+Vn(2P2+Vn(3>"2
)
2000 Vecl=SQR(VeclU!"'2+Vecl(2)'2+V
ecl(3)"2>
2010 Cosang=Prosc/(Vn*Vecu
2020 ang=ATN(SgR(l-Cosang"2)/Cosang
)
2030 IF ang<0 THEN ang=ang+PI
2040 IF lto=l THEN Coul=INT(ang/Fang
+1.5) : BOTO 2070
2050 Trame=INT(ang/Fang+0.5)
2060 CALL &A940, Trame
2070 X»eii=X
2080 FOR j=l TO 3
2098 X=Pt< j,i) : Wii,2i : Z=Pt
(j,3)
2100 BOSUB 2430
2110 XE(,i)=XE*Echx+Xcent : VE i j ) =
YE*Echy+Ycent
2120 IF YE(j)>2000 THEN YE(j!
200
2130 IF YE(j><-2000 THEN YE!j)=-2
000
2140 IF Z>0 AND YE(j)=-2000 THEN
YE(j!=2000
2150 NEXT j
2160 X=Xiem
2170 IF YE(2)>YE(1! AND YE(2)>YE(3!
THEN exx=XE(ti : exy»ÏE(l) : XEUi
=XE(2) ; YEU)=YE(2) : XE(2)=exx :
YE(2!=exy : GOTO 2190
2180 IF YE(3)>YE(li AND YE(3)>YE(2)
THEN exx=XEUI : exy=YEU> : XEfli
=XE(3) : YE(1)=YE(3) : XE(3)=exx :
YE(3)=exy
2190 IF YE(3)>YE(2) THEN exx=XE(2)
i exy=YE(2! : XEi2)=XE(3) : YE(2)=Y
E(3) : XE!3>=exx ; YE(3)=exy
2200 Nxl=XEil!-XEi2) i Nyi=ROUNB!YE :
(l)-YE(2))+l : Stpl=Nxl/Nyl
2210 Nx2=XEU)-XE(3! : Ny2=ROUND(YE :
%■.}
PS^^^t
^ZïS&T
%&>*^
■J
' (1)-YE<3))+1
: Stp2=Nx2/Ny2
i
2220 Nx3=XE(2)-XE(3) : Ny3=R0UND(YE
>HB
12)-YEi3))+l : Stp34lx3/Ny3
;YS
2230 Cpt2=l
>tœ
2240 FOR Cptl»! TO Nyl
:qe
>CK
2250 MOVE XE(l)-Cptl*Stpl,YE(l!-C
>DU
>JK
ptl : DRAN XE(l)-Cpt2*Stp2,YE(l)-Cp
tl.Coul
>VH
2260 Cpt2=Cpt2+l
>LB
:>AA
2270 NEXT Cptl
>XC
>AA
2280 FOR Cptl-2 TO Ny3
>q«
jAA
2290 MOVE XE(2)-CptHStp3,YE(21-C
;>dd
>UB
Ptl : DRAM XE(l!-Cpt2*Stp2,YE(2)-Cp
>UF
tl.Coul
>ffi
2300 Cpt2=Cpt2+l
>Lti
>YW
2310 NEXT Cptl
>m
2320 IF BordtOV AND Bord*<>"0" T
>JM
>FE
HEN 2380
2330 CALL S,A940,15
>LA-
;>PE
2340 MOVE XE(1),YE(1)
>PB
2350 DRAW XE(2i,YE(2l
>PV
>XD
2360 DRAW XE(3),YE(3)
>PY
)6R
2370 DRAW XElli.YE(l)
>PV
2380 RETURN
>FG
>XT
2390 REM **************************
>YD
>VE
**************************
2400 REM Sous-programme de calcul
>YK
>xx.
des coordonnées a l'écran
>PN;
2410 REM **************************
m
;DC
M************************
>CB
2420 Z=FN f(X,Y)
>HC
>E0
2430 d=X*cp*ct+Y*sp*ct+Z*st-Ray
>BY
2440 XE=(X*sp-Y*cp)/d
>0N
>ÏC
2450 YE=(X*cp*st+Y*sp*st-Z*ct)/d
>CB
>TJ
2460 IF Trans=l THEN BOSUB 2630
>YN
2470 RETURN
>F6
>AC
2480 REM **********************
>vu
2490 REM Génération de trames
>YH
>rx
2500 REM **********************
>VL
2510 POKE WDE9,ic0:POKE &BDEA.&A9
;AB
>JB
\2520 AD=SiA900
,>EH
2530 READ A$:A=VAL('*'*A*!:POKE AB+
>GD
>VE
N,A:N=N+1:IF AOiC THEN 2530
>DC
'2540 AD=M940:N=0
>LE
>VX
2550 READ A$:A=VAL<"&"+A*):POKE AD+
N,A:N=N+1:IF A0M)9 THEN 255»
>HD
2560 flD=4AAW:FOR N=0 TO 15: FOR 1=0
>EP
TO 7
>CF
2570 READ A:POK£ AD+N*B+I,A:NEXT I,
H
2580 CALL &A940, 15
>DX
>LH
2590 RETURN
>FK
>C8
2600 REM *#)HHHHHHHHHHHHHI*#*#**#*
m
2610 REM Restitution des X et Y
>ZE
2620 REM ************************
>m
/HP
263» X=X«em : Y=Ymem
>PT
2640 Trans=0
>JJ
,>HYi
l2650 RETURN
>FB
2660 REM ************************** >KM
*************
2670 REM Dépassements de capacité >TR
arithmétique
2680 REM *********************iti*** >KP
*************
2690 XmeiFX : Yme«=Y >PZ
2700 IF ERR=6 OR ERR=li THEN X=-X+MA >RB
X(ABS(Xmin),ABS(Xuax))/'20t»0 : Y=Y+
MAX(ABS(Yi»in),AB5(Ymax))/2000»
2710 Trans=l >JH
2720 IF ERL=2420 THEN RESUME 2420 ,'ZP
2730 IF ERL=1740 THEN RESUME 1720 >ZX
274» IF ERL=181» THEN RESUME 179» )ZD
2750 REM ************************** >HK
***********
2760 REM Datas pour la génération >NC
des trames
2770 REM ************************** >HM
***********
278» DATA E5,D5,11,0,C0,ED,52,7C,CB >ZQ
, 3F, CB,3F,CB,3F,li, 0,0,5F, DD,E5,BD,
21,27
279» DATS.A9,DB,19,D»,56,«,7S,A?,47 >YD
,DD,E1,D1,E1,C3,68,C
2800 DATA FE,1,C0,DD,7E >QR
2816 DATA «,FE,i0,D0,CB,27,CB,27,CB >UL
,27,21,0,AA, 11,0,0,5F, 19,11, 27, A9,l
■ 8
2820 DATA 0,ED,B0,C9 >NP
2830 DATA 0,0,0,0,0,0,0,0 >BX
284» DATA 0,64,0,8,0,64,0,8 >TB
2850 DATA 8,128,4,64,2,32,128,8 >XK
2860 DATA 0,34,0,136,0,34,0,136 >WT
2870 DATA 132,32,132,32,132,32,132, >BZ
32
2880 DATA 136,34,136,34,136,34,136, >CT
34
2890 DATA 146,73,146,73,146,73,146, >CL
73
2900 DATA 170,85,170,85,170,85,170, >CC
85
291» DATA 170,85,170,85,170,85,17», >CD
85
2920 DATA 109,182,109,182,109,182,1 >FJ
09, 182
2930 DATA 119,221,119,221,119,221,1 >FN
19,221 '
2940 DATA 123,223, 123,223, 123,223, 1 >FB
23,223
295» DATA 255,221,255,119,255,221,2 >FH
55,119
2960 DATA 247,127,251,191,253,239,1 >FU
27,247
2970 DATA 255,191,255,247,255,191,2 >FC
55,247
2980 DATA 255,255,255,255,255,255,2 >FD
,55,255»
U.T.|«L.|«T-A«I«R.E
PRET
Avant de vous lancer
dans de folles
dépenses et de vous
approprier l'objet
convoité, livrez-vous à
ce petit exercice :
tapez le listing suivant
et choisissez l'option
du menu qui vous
convient parmi la
recherche sur prêt, la
valeur acquise et la
valeur actuelle. De
quoi vous décourager
ou bien vous inciter à
vous offrir une
nouvelle voiture (par
exemple).
• Didier
RUYFFELAERT
1 ' PROGRAMMATION FAITE PAR DIDIER >FA
RUYFFELAERT SUR AHSTRAD CPC 4128 «0
N0CHR0NE
10 'm************************ PRE >LA
T . BANQUE **#****##*****»**#***#**
20 MODE 2 >BF
30 LOCATE 19, 4l PRINT" i- Prêt" >ZA
40 LOCATE 10,4:PRINT"* recherche 5 >VU
ur prêt "
58 LOCATE 11,7:PRINT'- 2 - capital" >FC
48 LOCATE 11, 8: PRINT"-
■ durée"
CN
78 LOCATE 11,9:PRINT"- 4 - tau* ann >LD
uel"
88 LOCATE iô, 11: PRINT"» valeur acq >PH
uise"
98 LOCATE 11, 12SPRINT"- 5 - capital >6N
100 LOCATE 11,13:PRINT"- 6 - suite >BN
de versements"
lie LOCATE 18, 15! PRINT"* valeur ac >RM
tuelle"
120 LOCATE tl,l6:PRINT"- 7 - capita >HV
1"
130 LOCATE 11, 17: PRINT"- 8 - suite >BF
de versements"
148 LOCATE 50,20:LINE INPUT "choix
:";a$
159 IF (ML (a$) < 1 OR VAL (a») > B
THEN 148
160 IF a* =
178 IF a* =
188 IF a* =
198. IF a* =
200 IF a* =
218 IF al =
228 IF a* =
238 IF a* =
THEN 2328
THEN 248
THEN 768
THEN 1388
THEN 1988
THEN 4468
THEN 2118
THEN 4928
ZPH
/NN
>NY
>PL
>PK
>PR
>PH
>Ps
248 ****************************** >RG
** P CAPITAL **********************
*****
258 MODE 2 >H6
268 LOCATE 32,2:PRINT"RECHERCHE CAP ,'LB
ITAL"
278 LOCATE 16,6 >ïD
288 PRINT'BUREE DU PRET (en année) >M
298 LOCATE lé,B:PRINT"REBBOURSEMENT
S (miensuei
308 LOCATE 25,9
318 PRINT"(t)riffle5triel "
320 LOCATE 25,10
330 PRINT" (s)enestriel "
348 LOCATE 25, Il
358 PRINT" (a)nnuel"
368 LOCATE 10,13
378 PRINF'TAUX ANNUEL ;"
3B8 LOCATE 18,15
398 PRINT"selon banque, méthode de
■m
calcul du taux a retenir "
408 LOCATE 25,18
418 PRINT"2- intérêts composes"
428 LOCATE 25,17
438 PRINT"1- intérêts simples"
440 LOCATE 10,21
458 PRINT"REHBOURSEI€NT SOUHAITE :
•ZD
•EF
•W
•EJ
>RN
■ES
>VH
>FA
>CF
;FC
>H5
>FD
>BE
>EE
570 LOCATE 23, 13: INPUT taux
5B8 IF taux < 8 OR taux > 108 THEN
570
598 LOCATE 4B, 19
600 LINE INPUT "choix :":a*
618 IF a* = "1" OR a$ = "2" THEN 6
28 ELSE 590
620 IF a* = "1" THEN t = Itaux ; d
u) / 188 ELSE t = <( 1 ♦ (taux/100)
! " (1/du) i " 1
630 LOCATE 34.21
648 INPUT loyer
658 IF loyer <= 8 THEN 638
668 capital = (i/(t/!t-(i+t!'-d)ï)*
lover
678 LOCATE 27,23:PRINT"CAPITAL FIXE
A :";:PR1NT USIN6"#*##t#.##":capit
al
688 LOCATE 29,25
690 PRINT "(s)uite - (i)mprimante "
780 q* = INKEY* >TJ
710 IF q*= "s" OR qj~"l" THEN 720 ,>FZ
ELSE 788
720 IF qs="s" THEN RUN >QB
738 li = 1 >ZC
748 SOSUB 4990 /RE
750 60T0 700 >ZF
768 '#***************************** ;TD
R DUREE **************************
770 MODE 2
789 LOCATE 32,2:PRINT"RECHERCHE DUR
EE"
790 LOCATE 10.6
800 PRINF'CAPITAL EMPRUNTE : "
B10 LOCATE 10,8:PRINT"REMBOURSEMENT
S (ntiensuel "
820 LOCATE 25,9
468 LOCATE 37, 6: INPUT durée M
478 IF durée <= THEN 460 >RY
488 LOCATE 37,12:LINE INPUT "choix ZKY
:"ia*
498 IF a*=V OR a* = "t" OR a* = >B¥
"s" OR ai = "a" THEN 508 ELSE 4B0
580 IF a* = "a" THEN 518 ELSE 520 >WY
510 d = durée * 12 : du = 12: 60T0 >ZH
578
528 IF a$ = "t" THEN 538 ELSE 548 >XD
538 d = durée * 4 : du = 4: GOTO 5 >XA
70
548 IF a» = "s" THEN 558 ELSE 568 >XJ
558 d = durée * 2 : du « 2: 60T0 5 >XY
70
560 d = durée : du = i >MK
83s
850
860
898
900
910
PRINT* (t)rimestnel "
LOCATE 25, 10
PRINT" (si emestriel "
LOCATE 25,11
PRINT"(a)nnuel"
LOCATE 10,13
PRINPTAUX ANNUEL :"
LOCATE 18.15
PRINT"seion banque, méthode de
calcul du taux a retenir "
928 LOCATE 25,18
938 PRINT"2- intérêts composes"
940 LOCATE 25,17
950 PRINT"!- intérêts simples"
968 LOCATE 18,21
970 PRINF'REHBOURSEHENT EFFECTUE
988 LOCATE 28,6: INPUT capital
998 IF capital <> THEN 9B0
>*• 1008 LOCATE 37, 12:LINE INPUT "choi >LV
>BN x :";a$
1810 IF a*="«" OR a» = "t" OR a* = ;EH
>GJ "s" OR a* = "a" THEN 1020 ELSE 100
>XF
•EN 1820 IF a» = "m" THEN 1038 ELSE 10 >ZC
40
;UE 1030 du = 12: GOTO 1898 >PH
1040 IF a» = "t" THEN 1850 ELSE 10 >ZR
60
;FB 1050 du = 4; GOTO 1898 >ND
>LK 1868 IF a* = "s" THEN 1078 ELSE 18 ;>ZX
>RM 80
>SP 1078 du = 2: GOTO 1090 >ND
1088 du = 1 ,'EH
>ZJ 1090 LOCATE 23, 13: INPUT taux >XH
1100 IF taux < OR taux > 100 THEN >CT
1090
>FD 1110 LOCATE 48,19 >LG
)JG 1120 LINE INPUT "choix :";a$ >YB
1130 IF a$ = "1" OR a$ = "2" THEN 1 >GR
148 ELSE 1118
1140 IF a* = "1" THEN t = itaux ,' d >UJ
u) / 100 ELSE t = <( 1 + (taux/100)
! " (S/du) i - 1
1150 LOCATE 34,21 >LY
1160 INPUT loyer >HR
1170 IF loyer <= THEN 1150 >U6
1180 durée = 1 -(( t * capital) / I ZDV
oyer î
1190 IF durée ■■■= THEN RUN >UE
>JD 1200 durée = LOG (durée!/ LOG (1 + >AD
>HF t)
1210 LOCATE 27,23:FRINT"0UREE FIXEE >XP
>ZA A :";:PRINT USIN6"M#*#*.## ,, :-dure
)AE e
/BK 1220 LOCATE 29,25 /LE
1230 PRINT "(s)uite - (î)mprimante >KC
>YD "
>ZL 1248 q$ = INKEY* >ZA
>FC 1250 IF q*= "s" OR q$="i" THEN 1260 >HH
>YC ELSE 1240
>FF 1260 IF q*="s" THEN RUN >QN
>RD 1278 H = 1 >EE
:>FD 12B8 GOSUB 4990 >YF
ZVQ 1298 60T0 1240 >MG
>EJ 1380 '***************************** >X6
/CD * R . TAUX ************************
**
>FK 1310 «ODE 2 /PB
/HE 1320 LOCATE 32,2:PRINT"RECHERCHE TA >HQ
ZGA UX"
m 1330 LOCATE 10,6 >DD
>FB 1340 PRINT"DUREE DU PRET (en année! >KC
/GL : «
1358 LOCATE 10,8:PRINT"REMBOURSEMEN >CH
>YC TS (m)ensuel
>UW 1360 LOCATE 25,9 /EF
-■■.■■■■:.■.'■
137* PRINT" St)rimestrisl "
>AJ
1380 LOCATE 25, 10
>LB
1390 PRINT" (sieaestnel "
>ZA
i486 LOCATE 25,11
>LV
1418 PRINT" (a)nnuel"
>RA
1428 LOCATE 18, 13
>LT
1438 PRINTWITAL EMPRUNTE ;"
JflN
1448 LOCATE 18, 15
>LX
1458 PRINT"3eion banque, méthode de
/DB
calcul du taux a retenir "
1460 LOCATE 25, 18
>LJ
1478 PRINT"2- intérêts composes"
>JC
1488 LOCATE 25,17 .
>LK
1498 PRINT"!- intérêts simples"
:>8U
1508 LOCATE 18,21 >L0
1510 PRINT"REHBOURSEMENT EFFECTUE : >HH
1528 LOCATE 37.6: INPUT durée >XV
1530 IF durée <= THEN 1520 >UJ
1540 LOCATE 37,12:LINE INPUT "chois M
:";â*
1550 IF a$=V OR a* = "t" OR a* = €K
"s" OR a* = "a" THEN 1568 ELSE 1540
1560 IF al = "m" THEN 1570 ELSE 150 >2F
8
1570 d = durée « 12 : du = 12: 60T0 >A6
1638
1580 IF a$ = "t" THEN 1590 ELSE 160 >ZK
1590 d = durée * 4 : du = 4: SOTQ 1 >ZN
630
1668 IF a* = "s" THtN 1610 ELSE 162
>ZN
1610 d = durée « 2 : du = 2: BOTO 1
>ZB
630
1620 d = durée : du = 1
>NF
1638 LOCATE 28. 13: INPUT capital
>AR
1648 IF capital '.- 8 THtN 1638
,'HH
1650 LOCATE 46,19
>LR
1668 LINE INPUT "choix :";a*
>YL
1670 IF a* = "1" OR a* = "2" THEN 1
>SB
6B8 ELSE 1650
1688 LOCATE 34,21
>L»
1690 INPUT loyer
m
1706 IF loyer ',- 8 THEN 1688
:>UP
1718 IF (loyer * d! •= capital THEN
.>EM
RUN
1728 ta = loyer 7 capital
)TK
1730 ta = CINT (ta » 10000!
>RF
1740 taux = 26
>KD
1750 IF s* = "1" THEN t = (taux / d
>UR
ul / 100 ELSE t = (( 1 ♦ (taux/100)
! " il/du) ! - 1
1760 1 = i t / ( 1 - (l+t)'-d))
;RL
1770 1 = CINT (1 * 10800!
;>PU
! 1780 IF I = ta THEN 1810 >PD
1798 IF 1 > ta THEN taux = taux * >YX
.75 ELSE taux = taux » 1.5
1800 60T0 1758 >MK
1818 LOCATE 27,23:PRINT"TAUX ANNUEL >DL
FIXE ft :";:PRINT USINS"######.I##"
: taux
1828 LOCATE 29,25 >ll
1836 PRINT "(s)uite - uSmprimante >KJ
1846 q$ = INKEV* >Z8
1850 IF q>= "5" OR: q*="i" THEN 1860 >HS
ELSE 1846
1860 IF ql="s" THEN RUN >QV
1B70 li =1 > C A
1888 GOSUB 4990 >ZB
1890 BOTO 1B40 >NJ
1906 'a**************************** >ïC
* V . ACQUISE C *******************
#*
1910 HOUE 2 >0C
1920 LOCATE 25,2:PRINT"VALEUR ACQU >CT
ISE PAR UN CAPITAL"
1938 LOCATE 16,5:PRINT"duree (en mo ;PC
is) :"
1948 LOCATE 16, 16:PRINT"capital p" /Fr,
1958 LOCATE 16, 15:PRINT"taux annuel >LS
1968 LOCATE 27,5: INPUT durée ,>XB
1978 LOCATE 21, 10: INPUT capital >AN
1980 LOCATE 23. 15: INPUT taux >X«
1996 taux = (1 + (taux / 100))"ii/l- >AF
2866 t = tauï'duree >NF
2616 va = capital * t >NP
2020 LOCATE W, 1 8: FR INT "VALEUR ACOU >VJ
ISE :"::PRINT USIN6"####t#t.#t"sva
2030 LOCATE 29,25 >LE
2846 PRINT "(s)uite - (imprimante >KC
2050 q* = INKEV* >ZA
2060 IF q*= "s" OR q*="i" THEN 2076 >HM
ELSE 2050
2070 IF q*="s" THEN RUN >0N
2080 li = 1 >EE
2090 GOSUB 4990 >YF
2160 GOTO 2050 >LH
2110 '****************************# >XG
* v . ACTUELLE CAPITAL ************
**
2128 HOBE 2 , >P6
2130 LOCATE 25,2:PRINT"VALEUR ACTU :>AD
ELLE D'UN CAPITAL"
2140 LOCATE 10,5:PRINT"duree (en mo >PH
is! :"
2150 LOCATE 10, 10;PRINT"capital :" >FD
2160 LOCATE 18, 15:PRINT"taux annuel >LA
2178 LOCATE 27,5: INPUT durée
2180 LOCATE 21, 18: INPUT capital
2190 LOCATE 23, 15: INPUT taux
2280 taux = il + (taux 7 i80))"(l/l
2)
2216 t = taux'-duree
2228 va = capital t t
2230 LOCATE 40,1B:PRINT"VALEUR ACTU
ELLE :":: PRINT USING"#######.##":va
2240 LOCATE 29,25
2250 PRINT "isiuite - !l!
rimante
;lH
>KF
2260 q* = INKEV*
2270 IF q*= "s" OR q*="i" THEN 2286
ELSE 2260
22B0 IF q*="s" THEN RUN
2290 li = 1
2306 GOSUB 4996
2318 BOTO 2266
2320 ' *****************************
* PRET ***************************
2330 MODE 2
2340 LOCATE 38,2:PRINT"PRET"
2350 LOCATE 10,4
2360 PRINT'TOREE DU PRET :"
2370 LOCATE 10,6
2380 PRINFREMBOURSENENTS «iensuel
2398 LOCATE 25,7
2480 FRINT'Stlnmestriel "
2410 LOCATE 25,8
2420 PRINT" (siemestriel "
2430 LOCATE 25,9
2440 PRINT" (a)nnuel
2450 LOCATE 16,11
2460 PRINT-TAUX ANNUEL :"
2476 LOCATE 18, 13
2480 PRINT'selon banque, méthode de
calcul du taux a retenir "
2490 LOCATE 25, 16
2560 PRINT"2- intérêts composes"
2510 LOCATE 25, 15
2520 PRINT"!- intérêts simples"
>DE
iXP
>DJ
>NB
>EH
;>ad
:>EB
>ZV
>EE
>UB
ÎLV
>VR
>LZ
2530 LOCATE 10,19 >LC
2546 PRINT'CAPITAL EMPRUNTE :" >AR
2550 LOCATE 10,21 >LX
2560 PRINT"MONTANT ASSURANCE EN I ( >ZA
c.a = 0.54 t ! ;"
2570 ' >¥6
2588 LOCATE 26, 4: INPUT durée >Xl
2590 LOCATE 37,10:LINE INPUT "choix >K6
:";a*
2600 IF a*="m" OR a* = "t" OR a* = >EK
rl6<
■>.-■ .-' .:■;■:-
2610 IF a* = "m" THEN 2420 ELSE 243
2620 d - durée * 12 : du = 12: ec =
>ZN
>6H
1 : GOTO 2680
2630 IF a* = "t" THEN 2640 ELSE 265
2640 d = durée * 4 : du = 4; ec = 3
;ZK
>EP
: GOTO 2680
2650 IF a* = "5" THEN 2660 ELSE 267
e
2640 d = durée » 2 : du = 2: ec = 4
>ZQ
>E0
: GOTO 2680
2670 d = durée : du = 1 : ec = 12
>uu
2680 LOCATE 23,11:INPUT taux
>JP
2690 IF taux < OR taux > 100 THEN
>DB
26»
2780 LOCATE 48, 17
>LL
2710 LINE INPUT "chois :";al
)VH
2720 IF a$ = "1" OR a* = "2" THEN 2
>BL
730 ELSE 2700
2730 IF a* = "1" THEN t = (tau* / d
>UQ
"s" OR a* = "a" THEN 2610 ELSE 2590 1 2960 PRINT #l,USIN6"#####";ii
2970 PRINT #7,USINS"»r;cpteur;:PRI
NT #7,"."(
2980 PRINT t7,USINS"«i";annee
2990 PRINT #2,UBIN6"*#»*##.»#";capi
tal
3000 intérêt = capital » t
3010 PRINT #3,USINB"#*##t».tr;inte
ret
3020 inte = inte + intérêt
3030 inter = inter + intérêt
3040 amort = loyer - intérêt
3050 amorti = amorti + amort
3060 PRINT #4,USIN6"#**#t».*#"iamor
t
3070 PRINT #5,USING "»###»*.##"; loy
er
3080 as = ((capital ♦ assur)/100)/d
u
3090 PRINT #6,USINS "*##t##.t#";a5
3100 ass ~ ass + as
3110 assu = assu + as
3120 capital = capital - amort
3130 cpteur = cpteur + ec: compteur
= compteur + 1
3140 IF compteur = 25 THEN SOSUB 42
10 ELSE 3160
3150 SOSUB 3930
3160 IF du = 1 THEN 3610
3170 IF cpteur > 12 THEN 3180 ELSE
3610
3180 cpteur = cpteur - 12: année =
année + 1
3190 IF année > 99 THEN année = 1
3200 PRINT 11,
3210 PRINT #2,"'
3220 PRINT #3,
3230 PRINT #4,'"
3240 PRINT 15,
3250 PRINT #6,
3260 PRINT 17,
3270 compteur :
3280 IF compteur
10 ELSE 3380
3290 SOSUB 3930
3300 PRINT #1,""
3310 PRINT #2,""
3320 PRINT *3,""
3330 PRINT #4,""
3349 PRINT #5,"
3350 PRINT #6,""
3360 PRINT #7,""
3370 compteur = compteur + 1
3380 PRINT #1,"".
3390 PRINT #2,""
3400 PRINT #3,USIN6 "#t*#l*.*#";int
u) / 100 ELSE t = il 1 + (taux/400)
) '■ il /du) i - 1
2740 LOCATE 28, 19: INPUT capital
2750 IF capital < THEN 2740
2760 LOCATE 51,21: INPUT assur
2770 IF assur < THEN 2760
2780 LOCATE 10,23
2790 INPUT "MOIS, ANNEE DE DEPART D
ES REMBOURSEMENTS :"idepart
2800 IF départ < 1 OR départ > 12 T
HEN départ = 1
2B10 LOCATE 58,23
2820 INPUT année
2830 IF année < 1 OR année ) 99 THE
H année = 1
2840 LOCATE 29,25:PRINT. "(s)uite -
(iimprimante "
2850 qt = INKEYt
2860 IF n$= "s" OR qt="i" THEN 2870
ELSE 2850
2870 IF q*="s" THEN 2900
2880 li = 1
2890 BOSUB 4990
2900
it
( 1 - (l+t»'-d)) >FS
2910 loyer
* capital
2920 SOSUB 3930
2930 cpteur = départ: inte = 0;ass=
0:as = 0:compteur = 4
2940 inter = : amorti = îassu =
2950 FOR il = i TO d
>YA
>VF
;>AG
>LRi'
: compteur + 1
■■ 25 THEN SOSUB 41
3410 inte = >VH
3420 PRINT #4, "" >ZH
3430 PRINT 15,"" 'M
3440 PRINT #6, USINE "»#!###. ##": ass >BB
3450 PRINT #7,""
>AD
3440 ass=
>PB
3470 compteur =
compteur + 1
>WB
3480 IF compteur
= 25 THEN GOSUB 42 >H8
10 ELSE 3510
3490 SOSUB 3930
JïD
3500 BOTO 3610
)MF
3510 PRINT #1,"'
>ZE
3520 PRÎNT »2,"'
?zs
3530 PRINT #3,"'
JZJ
3540 PRINT *4,'"
>AA
3550 PRINT #5,"'
>AC
3560 PRINT #6,'"
>AE
3570 PRINT #7,'"
>AB
3580 compteur =
compteur + 1
>m
3590 IF compteui
= 25 THEN SOSUB 42
>m
10 ELSE 3610
3600 BOSUB 3930
m
3610 NEXT ii
>EA
3620 PRINT #3,"'
?ZJ
3630 PRINT #4,'."
;AA
3640 PRINT #5, "
>AC
3450 PRINT *4,"'
:»ae
3640 PRINT 17, "
>AG
3670 compteur =
compteur + 1
>m
3680 IF compteur
= 25 THEN GOSUB 42
>MU
10 ELSE 3700
3690 SOSUB 3930
>VF
3700 PRINT #1,"
>ZF
3710 PRINT 12,"
>ZH
3720 PRINT I3,USIN6 "##tt*#.#t"
int
;>cj
3730 PRINT M, "
>AB
3740 PRINT K, "
>ad
3750 PRINT #6,USING "»#tt#t.##"
ass
«F
3760 PRINT 17,"" >AH
3770 compteur - compteur + 1 >WE
37B0 IF compteur = 25 THEN GOSUB 42 >MH
10 ELSE 3800
3790 BOSUB 3930 >¥G
3800 FOR i = 1 TO 2 >CK
3810 PRINT #<i),"" >LM
3820 NEXT i >VJ
3830 FOR i = 3 TO 5 >BH
3840 PRINT *(i)," " )TD
3850 NEXT i . M
3855 PRINT 1(4!/ " >TL
3860 PRINT #7,'"' >AJ
3870 PRINT #3,USIN6 "*##*»#.#»"; int >DL
er
i 3880 PRINT #4, USINE "#*tMttt.*#";amo >EB
V17«
rti
3890 PRINT #5,USINS "###'###.##"; loy >FP
er * d
39» PRINT #6,USINB "######,##";a5s >CA
u
3?» BOSUB 4216 MC
3920 RUN >CC
3930 '***************************** >YH
***********************************
**
3949 MODE 2 JÛC
3959 LOCATE 2,1 ,'XF
3966 PRINT STRING*j7B.". ") >UH
3970 LOCflTE 5,2 >YB
3980 PRINT "N~ DATE CAPITAL >BV
INTERETS AMORTISSEMENT REMBDUR
SEMENT ASSURANCE"
3998 LOCATE 2,3 >VB
4000 PRINT STRIN6*(78,","i ;UT
4016 HINDOU #1,2,7,4,24 >QB
4020 HINDOU #2,19,28,4,24
>TF
4930 HINDOU 13,31,42,4,24
>RF
404* HINDOU #4,45,56,4,24
m
4050 HINDOU #5,59,68,4,24
>TU
4860 HINDOU #6,69,79,4,24
>TB
4070 HINDOU #7,9,16,4,24
,'RR
4660 RETURN
>FF
4090
>VF
4100 FOR i = 2 TQ compteur-i
;>ve
4110 LOCATE 2,i : PRINT"!";
m
4120 LOCATE 3,1 : PRINT"!"',
,'UJ
4130 LOCATE 15,1 : PRINT"' 1 ':
>VE
4140 LOCATE 29,1 : PRINT":";
>VL
4158 LOCATE 41, i : PRINT":":
>VF
4168 LOCATE 55,1 : PRINT"!";
m
4170 LOCATE 69, i : PRINT"!";
m
4180 LOCATE 79, I : PRINT"!";
m
4190 NEXT
;lf
4209 RETURN
>EK
4210 *****************************
>XK
***********************************
4220 SOSUB 4100
>HF
4230 compteur = 4
>LK
4240 LOCATE 22,25
;>LC
4250 PRINT "(s)uite - (î)mprimante
>FU
- avec (e in te te"
4260 q* = INKEY*
;ZF
4270 IF qS= "5" OR q*="i" OR q* -"s
>UL
• THEN 42B0 ELSE 4260
42B0 IF q*="s" THEN RETURN
>UE
4290 IF q$ = "e" THEN II = 1 ELSE
li = 4
4300 IF q* = "i" THEN 4330
>AQ
>œ
4310 PRINT», " LE PRESENT ECHEANCIE
>JF
R N'A DE VALEUR QUE POUR SA VALEUR
I I
INDICATIVE; EN AUCUN"
4320 PRINT#B," CAS LE PORTEUR NE PO
URRA S'EN PREVALOIR."
4330 q$=""
4340 ligne = li
4350 FOR col = 1 TO 80
4360 LOCATE col, ligne
4370 b*= COPYCHR*(#0t
4380 q*= q* + b*
4390 NEXT coi
4400 IF q* = STRINS*(B0," ") THEN 4
450
4410 PRINT #8,q*
4420 q* = ""
4430 ligne = ligne * i
4440 IF ligne > 24 THEN 4450 ELSE 4
350
4450 BOTO 4260
4460 '*****************************
* V ACQUISE SUITE ****************
****
4470 «ODE 2
4480 LOCATE 20,2:PRINT"VALEUR ACQUI
SE PAR UNE SUITE DE VERSEMENTS"
4490 BOSUB 4510
4500 GOTO 4820
4510 LOCATE 10,6
4520 PRINT"NOMBRE DE VERSEMENTS : "
4530 LOCATE 10,8 >EA
4540 PRINT "VERSEMENTS (ffwensuei /IP
4550 LOCATE 21,9 >EF
4560 PRINT" (tirmestriel " 'AN
4570 LOCATE 21,10 >LB
4580 PRINT" islemestriel " >ZE
4590 LOCATE 21,11 >LE
4600 PRINT "(ai nnuel " .«
4610 LOCATE 10,15 >LZ
4620 PRINF'TAUX ANNUEL : " >VR
4630 LOCATE 10,18 >LE
4648 PRINPMDNTANT DES VERSEMENTS ; >HJ
4650 LOCATE 32,6;INPUT durée >XX
4660 LOCATE 37,12:LINE INPUT "choix /LA
:";a$
4670 IF 3*="»" OR a* = "t" OR a* = >EE
"5" OR a$ = "a" THEN 46B0 ELSE 4660
46B0 IF a* = "m" THEN 4690 ELSE 470 >2Q
4690 d = durée * 12 : du = 12: BOTO >BL
4750
4700 IF a$ = "t" THEN 4710 ELSE 472 >ZK
4710 d = durée * 4 : du = 4: BOTO 4 >ZR
750
4720 IF a» = "s" THEN 4730 ELSE 474 >ZP
473» d = durée * 2 : du = 2: GOTO 4 >ZP
750
4740 d = durée : du = 1 >NH
4750 LOCATE 23, 15: INPUT taux >XU
4760 IF taus < OR taux > 100 THEN >DB
4750
4770 LOCATE 34,18 >LR
4780 INPUT capital >NH
4790 IF capital < THEN 4770 >V8
4800 t= il 1 + (taux/100)! "■ il/du) >AB
! - 1
4810 RETURN >FB
4820 loyer = ((((l+t)"duree)-ii/ti* >KV
capital
4830 LOCATE 40,20:PRINT"VALEUR ACQU )7A
ISE :";;PRINT USING"t##t##t.##"; loy
er
48 > 40 LOCATE 29,25 >LR
4850 PRINT "(siuite - (i)mpriffiante >KF
4860 q* = INKEY* >AB
4870 IF q*= "5" OR q*="i" THEN 4880 >HY
ELSE 4860
4880 IF q$=V THEN RUN ;flA
4890 11 = 1 >FF
4900 BOSUB 4990 >¥H
4910 GOTO 4660 >NK
4920 ***************************** >YH
* V ACTUELLE SUITE ****************
****
4930 MODE 2 >0C
4940 LOCATE 20, 2: PRINT "VALEUR ACTUE >UL
LLE D'UNE SUITE DE VERSEMENTS"
4950 SOSUB 4510 /VA
4960 loyer - (il - ((l+U'-dureei) >MC
/ t ) * capital
4970 LOCATE 40,20;PRWT"VALEUR ACTU >BQ
ELLE :";:PR1NI USIN6"#»#tttÈ»«.##";io
ver
4980 GOTO 4840 >PE
4990 ***************************** >ZE
* imprimante **********************
*****
5000 q*="" >DB
5010 FOR ligne = li TO 24 >RH
5020 FOR coî = 1 TO 80 >ND
5030 LOCATE col, ligne >QV
5040 b*= COPYCHR»(t0! -f'U
5050 q$= q* + b$ >EJ
5060 NEXT col >PA
5070 PRINT #8,q$ >FD
5080 q* = "" >EB
5090 NEXT ligne >HH
5100 RETURN >EK
5110 '***************************** >XK
***********************************
! ****•
u
L • I
RESISTOR
RESISTOR est un
programme destiné
à calculer la valeur
des résistances les
plus courantes sur
le marché : les
résistances aux 3
bagues dont la
valeur se calcule par
le célèbre code des
couleurs.
•Emmanuel GUILLARD
Pour les électroniciens en herbe, un
petit cours est inclus dans le
programme, afin qu'ils comprennent
à quoi sert une résistance et la façon
de calculer sa valeur.
Une notice y est comprise. Comme elle
est un peu succincte, je vais vous la
détailler :
L'écran se décompose en cinq ta-
bleaux :
A droite : le tableau dit "de travail".
C'est dans cette fenêtre que se déroule
le programme.
Au milieu, en haut : le tableau dit "de
résultats". La valeur de la résistance
calculée ainsi que les couleurs corres-
pondantes y sont inscrites.
Au milieu, en bas : l'indispensable
tableau des couleurs indiquant les dif-
férentes couleurs et leur numéro
correspondant.
A gauche, en bas : second tableau
indispensable : celui des multiplica-
teurs. Y sont indiquées les valeurs- de
multiplicateurs de chaque couleurs :
or, noir, marron, rouge, orange,
jaune, vert et bleu.
-
-•■•
j - ;; ■* « • ;i
.
. îSfec
2
s .:■ ' • =,!
su !
-
......
siwe •; --.t
Ë a P ; «
| : < 3.1 î
, 4
s g s • a
»;:! ;
VARIABLE
FONCTION
COULS (10)
Tableau renfermant chacune des cou-
leurs, numérotées de à 10
MULTS (7)
Tableau renfermant les valeurs
alphanumériques des multiplicateurs
correspondant aux couleurs, numé-
rotées de à 7 j
NRCL (10)
Tableau renfermant le numéro de
chacune des couleurs
MDEC
Variable correspondant au MODE
DE TRAVAIL j!
MDEC = f : mode couleur 1
MDEC * 2 : mode chiffre [
MDC$
Valeur alphanumérique du mode de 1
travail : couleur ou chiffre jj
LIGNE
Variable indiquant le sous-
programme à brancher, suivant le
mode, après appui sur une des tou-
ches du menu.
VALEUR1S
Valeur alphanumérique du n° de la
l ere couleur
VALEUR2J
Valeur alphanumérique du n° de la
2 e couleur
VALEUR3S
Assemblage de VALEUR1S et
VALEUR2S dans cet ordre
■VALEUR
Valeur de la résistance
'19''
A gauche, en haut : le tableau récapi-
tulatif des touches à utiliser et leur
effet.
UTILISATION
Ce programme fonctionne suivant
deux modes différents :
a. Mode couleur : on entre chacune
des couleurs et l'ordinateur calcule la
valeur correspondant à l'association
de ces couleurs.
Remarque : le programme débute
sous ce mode.
b. Mode chiffre : cette fois on entre
les deux premiers chiffres et la valeur
du multiplicateur, le tout pour obte-
nir les différentes couleurs.
Les touches :
Z - X : choix de la première couleur
ou du premier chiffre suivant le mode.
C - V : choix de la seconde couleur
ou du second chiffre, suivant le mode.
B - N : choix de la troisième couleur
ou du multiplicateur, suivant le mode.
ENTER : validation après choix des
trois couleurs'* ou des deux chiffres
+ multiplicateur, suivant le mode.
RESULTAT
Le résultat s'affiche dans le tableau
des résultats : on obtient la valeur de
la résistance cherchée et les trois
couleurs, à lire de gauche à droite
pour les avoir dans l'ordre,
correspondant à la valeur.
* En effet seules trois couleurs sont
utilisées alors que sur une résistance,
il en existe une quatrième, un peu plus
espacée des autres qui correspond à la
tolérance. Elle n'est pas indispensable,
c'est pourquoi elle n'est pas
représentée dans le programme.
5 CALL M4E:CALL &8B00 >0T-
10 '
>LA
26 '
>LB
30 '
KANUSOFT
>LC
4B '
ET CPC
>LD
50 '
^ PROPOSENT
>LE
69 "
>LF
70 '
R ES I S T OR
>LG
80 '
>LH
W
>LJ
100
:>RB
110 ' MODE D'EMPLOI
>RC
120 H
ODE 2: BORDER 0:1
« 0.0: MK 1.1 >CZ
130 LOCATE 24.2:PR1NT "R E S 1 S T >ZA
OR ici 1987 E.B."
148 LOCATE 8.7:PR1NT "COMME SON NOM M
L'INDIOUE .RESISTOR EST UN PROBRA
MME TRAITANT"
150 LOCATE B,9:PRINT "CES COMPOSANT >VU
S ET PLUS PARTICULIEREMENT LE CA
LCUL DE LEUR"
160 LOCATE B.UsPRINT "VALEUR ." >A¥
170 LOCATE B.13:PRINT "SON UTILISAT >ZV
ION EST SIMPLE : IL SUFFIT DE PRESS -
ER LES TOUCHES"
1B0 LOCATE 8, 15: PR1NT "CORRESPONDAN >CD
TES POUR CHAN6ER LA VALEUR OU LA CO
ULEUR AFFICHEE .".
190 LOCATE 8,17:PRINT "LA VALIDATIO >BA
N SE FAIT A L'AIDE DE LA TOUCHE <EN
TES). "
200 LOCATE 1,25:PRINT "UNE TOUCHE .
,,":CALL MB06:CLS
210 LOCATE 24,2:PRINT "R E S I S T
R ic) 19B7 E.B."
220 LOCATE 28, 4: PRINT "NOTION DE RE
SISTANCE"
230 LOCATE B,6:PRINT "UN RESISTOR E >UH +
ST UN PETIT COMPOSANT UTILISE EN EL
ECTRONWUE"
240 LOCATE B,8:PRINT "ET OUI A POUR >UE
EFFET DE LAISSER PLUS OU MOINS Bit
N PASSER LE"
250 LOCATE S,10:PRINT "COURANT ELEC >UE
TRIQUE . IMAGINEZ UNE CANALISATION
ENTARTREE :"
260 LOCATE B,12:PRINT "L'EAU EPROUV >WR
E PLUS OU MOINS DE MAL A PASSER A T
RAVERS CELLE-"
270 LOCATE B.14:PRINT "CI . LE RESI >ÎN
STOR CORRESPOND DONC A CE PETIT TUY
AU ET LA RESIS-"
280 LOCATE 8, 16: PRINT "TANCE DE CE >CU
RESISTOR CORRESPOND AU TARTRE DU TU
YAU.LA RESISTAN-"
290 LOCATE B.lBlPRINT "CE S'EXPRIME >A6
EN OHM <":CHR*(191);") ET SE CALCU
LE EN MULTIPLIANT"
300 LOCATE 8,20:PRINT "L'INTENSITE >Y0
(EN AMPERES) PAR LA TENSION !EN VOL
TS) DU COURANT"
310 LOCATE B,22:PRINT "QUI PARCOURT >RB
LE RESISTOR, D'OU LA CELEBRE FORMU
LE :R=U/I "
320 LOCATE 8,24:PRINT " (R=RESISTANC >NW
E.IHENSION. ^INTENSITE) ."
330 LOCATE 1,25:PRINT "UNE TOUCHE . >¥B
..":CALL 8»6:CLS
340 LOCATE 24,2:PRINT "R E S I S T >ZD
OR (c) 1987 E.B."
350 LOCATE 28,4:PRINT "NOTION DE RE >PB
SISTANCE"
360 LOCATE B.6:PRINT "UN RESISTOR A >UH
, UNE FORME CYLINDRIQUE ET 3 BAGUES ' .
'DE COULEURS"
CHARGEMENT
Taper le listing qui suit et le
sauvegarder sous le nom de
"RESISTOR".
Il ne restera plus qu'à faire
RUN"RESISTOR" pour lancer ce
programme.
AVERTISSEMENT
Pendant la frappe du listing, ne vous
amusez pas à taper un RUN, car la
première ligne contient l'appel d'une
routine qui inhibe les interruptions
(autrement dit il n'est pas possible de
faire un break !). De même, à la fin,
sauvegardez avant de lancer, sinon
vous seriez obligé de faire un reset
total de la machine. Fâcheux, non ?
C'était plus fort que moi, je n'ai pas
pu y RESISTER ! (Je sais, c'était
facile mais je tenais quand même à la
sortir).
370 LOCATE 8,B:PRINT "SONT PEINTES >ZM
SUR CELUI-CI , CES COULEURS PERMETT
ENT DE C0NNAI-"
380 LOCATE 8. 10: PRINT "TRE LA VALEU >MC
R DE LA RESISTANCE . ON PROCEDE COM
ME CECI:"
390 LOCATE 18,12:PRINT "BAGUE 1:CH1 >Ui /
FFRE 1"
400 LOCATE 18,14:PRINT "BAGUE 2:CHI >LH /
FFRE 2"
410 LOCATE 18.16:PRINT "BAGUE 3:MUL >UE
TIPLICATEUR"
420 LOCATE 8,18: PRINT "EX: 1:R0UGE >ZT
2:0RAN6E 3;VERT"
430 LOCATE 8.20:PRINT "VALEUR = (RO >GZ
U6E+0RANGEWERT =(2+3)*100000=23»l
09000=2300000 ";CHR*(191I
440 LOCATE 1,25:PRINT "UNE TOUCHE , >YD
.."iMLL &BB06:CLS
450 LOCATE 24, 2: PRINT "R E S I S T >ZF
R ic) 1987 E.B."
460 LOCATE 8,6:PRINT "UTILISATION D >UA
U PROGRAMME : DANS LE TABLEAU EN HA
UT A 6AUCHE"
470 LOCATE B,8:PRINT "SONT INDIQUEE >HK
S LES TOUCHES A PRESSER ET LEUR EFF
ET ."
480 LOCATE B,10:PRINT "LE TABLEAU D >HR
U DESSOUS INDIQUE LES NUMEROS DE CH
AQUE COULEUR"
490 LOCATE 8,12:PRINT "ET LEUR VALE >AK
UR DE MULTIPLICATEUR . A DROITE LE
TABLEAU INDIQUE"
500 LOCATE 8,14:PRINT "CHAQUE COULE >WV
UR ET LEUR NUMERO CORRESPONDANT . A
U DESSUS EST"
.510 LOCATE 8,lè:PRINT "DESSINEE UNE >TN
1 RESISTANCE AVEC SES 3 BAGUES ET LA
r2CH